【发布时间】:2017-05-23 19:10:02
【问题描述】:
您好,我知道这是一个简单的问题,但我从统一和 C# 开始。 我有一个包含 65 个游戏对象的数组,我需要在不同的数组中使用它们中的每一个的光组件,到目前为止我有:
public GameObject[] lightGO;
public Light[] lights;
void Awake(){
lightGO = GameObject.FindGameObjectsWithTag ("Light");
for (int i = 0; i < lightGO.Length; i++){
lights[i] = lightGO[i].GetComponent<Light>();
}
}
GameObject Array 填充了 65 个项目,但带灯的项目保持为空,这里有任何指针吗?提前致谢!
【问题讨论】:
-
您确定加载到
lightGO中的对象具有使用GetComponent()检索Light 组件的正确结构吗? (即,它不是在他们的孩子身上或类似的东西上?)您能否附上您尝试访问的对象的屏幕截图? -
过去我在 Lights 上使用 GetComponent 时遇到过一些问题。我需要查看我的代码,看看我做了什么让它工作。
-
基本上我需要获取我拥有的每个游戏对象的一个组件数组,每个游戏对象都有一个灯光组件,我成功地在 Unity 中列出了游戏对象,但我无法获取组件列出。 [图片](goo.gl/photos/V5HdjYwHu4wWcdzq9 和 goo.gl/photos/bzoXKmjZXvGhsfEE8
-
使用“GetComponentsInChildren”而不是“GetComponent”,应该可以。
-
@Herb 只是想知道,你在哪里初始化
lights? (例如,初始化一个新数组,设置它的大小等等。)
标签: c# arrays unity3d light gameobject