C# 游戏对象在Unity中没有变换的定义

C# 游戏对象在Unity中没有变换的定义,c#,unity3d,C#,Unity3d,所以我试着让这个代码工作,不管我做什么,它总是告诉我这是不可能的。所以我试图让这个名为block的游戏对象(我之前在脚本中定义过)有一个带有标记Terrain的父对象。代码如下: block.transform.SetParent(GameObject.FindGameObjectsWithTag("Terrain").transform); 我收到的错误消息如下: “GameObject[]”不包含“transform”的定义,并且找不到接受“GameObject[]”类型的第一个参数的可访

所以我试着让这个代码工作,不管我做什么,它总是告诉我这是不可能的。所以我试图让这个名为block的游戏对象(我之前在脚本中定义过)有一个带有标记Terrain的父对象。代码如下:

block.transform.SetParent(GameObject.FindGameObjectsWithTag("Terrain").transform);
我收到的错误消息如下:

“GameObject[]”不包含“transform”的定义,并且找不到接受“GameObject[]”类型的第一个参数的可访问扩展方法“transform”(是否缺少using指令或程序集引用?[assembly CSharp]CSharp(CS1061)```

返回包含具有指定标记的所有游戏对象的数组。在本例中,您需要使用which返回使用指定标记创建的第一个元素

block.transform.SetParent(GameObject.FindWithTag(“地形”).transform);

使用
FindWithTag
命令istead,文档非常感谢你,尼古拉,我欠你一个人情——数组没有
变换
;)。。。如果可以避免,请不要使用任何
Find
方法。。。最好的选择是通过检查器引用相应的
游戏对象
转换
,例如在
[SerializeField]私有转换terrainTransform中使用拖放