C# 将GameObject转换为生成的对象列表,并在其中进行迭代

C# 将GameObject转换为生成的对象列表,并在其中进行迭代,c#,list,unity3d,gameobject,C#,List,Unity3d,Gameobject,我相信这里有很多了不起的人可以解决这个问题 我有一个在我的第一个脚本中制作的游戏对象列表 public List<GameObject> _recordinglist = new List<GameObject>(); 现在在第二个脚本中 我有一个工作脚本 将游戏对象更改为其他游戏对象。例如,通过点击不同的按钮将踢变成拍,我将在Inspector中更改游戏对象 然而 试着做 GameObject=列表[0] 即使已初始化,也会显示错误 另外,我不知道如何用按钮单击/循环

我相信这里有很多了不起的人可以解决这个问题

我有一个在我的第一个脚本中制作的游戏对象列表

public List<GameObject> _recordinglist = new List<GameObject>();
现在在第二个脚本中

我有一个工作脚本

将游戏对象更改为其他游戏对象。例如,通过点击不同的按钮将踢变成拍,我将在Inspector中更改游戏对象

然而

试着做

GameObject=列表[0]

即使已初始化,也会显示错误

另外,我不知道如何用按钮单击/循环浏览列表

如果能为相对初学者提供一些清晰的指导,我们将不胜感激

我已经在Unity论坛上问过了,但这会导致混乱。我也直接发了电子邮件,但答案不够详细。我也四处查看了一下,还没有看到我到底需要什么

换句话说,

我正试着让你满意

记录1=记录2或3、4、5、6,然后在我选择时从1开始


我不确定我是否理解,但我想这就是你想要的:

gameobjectr=\u录制[0]

(在问题中,您忘记给变量命名)

要遍历列表,请执行以下操作:

int i = 0;
GameObject go = _recordings[i];
i = (i + 1) % _recordings.Length;

模数(%)符号返回除法余数,因此它确保
i
在到达
\u录制时正好被设置回0。长度

这是否回答了您的问题:?感谢这部分!我也忘了说我一直在犯这个错误。即使是你的代码。我甚至尝试过,但它仍然给出了一个错误“无法将类型'NatSuite.Examples.HotMic'隐式转换为'UnityEngine.GameObject'”。我需要在第二个脚本中复制脚本才能工作吗?-完全不清楚你在那里做什么。。。什么是
NatSuite.Examples.HotMic
。。你可能忘了把
.gameObject
放在什么地方了吗?@derHugo抱歉,NatSuite脚本来自unity插件脚本。我基本上是用它来录制的,这个列表是我用新的音频创建游戏对象时添加的。第二个脚本与
code\u drawObjectPrefab=GameObject.FindGameObjectsWithTag(“RecordedCube”)[0]配合良好但是调用列表。给出了这个错误。列表已经是第一个脚本(HotMic脚本)中的游戏对象
code public list\u recordinglist=new list()
code public void setrecprefactype(GameObject[]\u recordinglist){{u drawobjectprefa=\u recordinglist[0];}
是到目前为止我得到的最接近的一个,没有错误,但是一旦GameObject[]如果游戏对象是一个
列表
,则使用它而不是游戏对象。不过,计数
)谢谢这部分!我也忘了说我一直在犯这个错误。即使是你的代码。我甚至尝试过,但它仍然给出了一个错误“无法将类型'NatSuite.Examples.HotMic'隐式转换为'UnityEngine.GameObject'”。我需要在第二个脚本中复制一份脚本才能工作吗?@SagiZiv谢谢你的回答,我一直收到“无法隐式将类型转换为'UnityEngine.GameObject'”的错误。NatSuite脚本来自unity插件脚本。我基本上是用它来录制的,这个列表是我用新的音频创建游戏对象时添加的。第二个脚本与
code\u drawObjectPrefab=GameObject.FindGameObjectsWithTag(“RecordedCube”)[0]配合良好但是调用列表。给出了这个错误。列表已经是第一个脚本(HotMic脚本)中的游戏对象
code public list\u recordinglist=new list()
code public void setrecprefableType(GameObject[]\u recordinglist){{u drawobjectprefa=\u recordinglist[0];}
是迄今为止我得到的最接近的一个,没有错误,但是一旦使用GameObject[]而不是GameObject,单击按钮Onclick就会停止显示函数
int i = 0;
GameObject go = _recordings[i];
i = (i + 1) % _recordings.Length;