You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中使用new语法向List添加GridObject对象时触发"Tuple must contain at least two Elements"错误的原因排查

解决Unity中“Tuple must contain at least two Elements”错误

嘿,我来帮你搞定这个问题!你遇到的错误完全是因为类实例化的语法写错了,咱们一步一步理清楚:

错误原因分析

你代码里的这一行:

Grid.Add( new (GridObject) {xCord = 0, zCord = 0, ObjectID = 0}); 

C# 编译器会把new (GridObject)解析成尝试创建一个单元素元组,但C#的元组语法明确要求元组必须包含至少两个元素,所以才会抛出“Tuple must contain at least two Elements”的错误。这和GameObject本身无关,纯粹是语法误用导致的误解。

修复方法

正确的类实例化语法不需要把类名放在括号里,把括号去掉就可以正常工作,有两种写法可选:

写法1:带括号的对象初始化器(更严谨)

Grid.Add(new GridObject() { xCord = 0, zCord = 0, ObjectID = 0 });

写法2:省略括号的对象初始化器(C# 3.0+支持)

Grid.Add(new GridObject { xCord = 0, zCord = 0, ObjectID = 0 });

额外提醒

另外注意:你在Update()方法里每帧都会向Grid列表添加一个新的GridObject实例,这样会导致内存持续增长,很快就会积累大量无用对象。如果只是测试,建议改成只执行一次,比如移到Start()里,或者加个触发条件,比如:

void Update()
{
    // 按空格键才添加一次
    if (Input.GetKeyDown(KeyCode.Space))
    {
        Grid.Add(new GridObject { xCord = 0, zCord = 0, ObjectID = 0 });
    }
}

内容的提问来源于stack exchange,提问作者99thGamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:47:46