引用对象向量中的对象

时间:2018-05-02 09:16:58

标签: c# object unity3d vector

  1. 我需要创建一个矢量或对象列表(以允许我这样做为准)。
  2. 实例化对象并将其添加到对象或对象列表中。
  3. 我需要在对象(或对象列表)的向量中引用一个对象,并引用该对象的一个​​组件来初始化存储在游戏管理器中的变量。
  4. 注意:这不是家庭作业或工作相关。这是我正在研究的个人游戏机制。我可以完成一个和两个。三是我被困的地方。我不确定是使用向量还是列表,我不知道如何在Unity C#中引用该向量或列表中的特定对象(使用MonoDevelop)(单例模式)。

    instance = Instantiate (prefab, spawnPoint.position, spawnPoint.rotation); 
    instance.GetComponent<Camera> ().enabled = false; 
    cameraTwo = instance.GetComponent<Camera> (); 
    

    需要将cameraTwo变量设置为矢量或列表中对象的组件。

2 个答案:

答案 0 :(得分:0)

  

我列表中的项目包含我需要访问的相机组件。问题是必须指向该特定对象才能获取其组件。

您可以使用System.Linq查找具有Camera组件的项目。

using System.Linq;
...
List<GameObject> myList = new List<GameObject>();
public GameObject GetGameObjectWithCameraComponent() {
    return myList.FirstOrDefault(item => item.GetComponent<Camera>() != null);
}

public IEnumerable<GameObject> GetAllGameObjectsWithCameraComponent() {
    return myList.Where(item => item.GetComponent<Camera>() != null);
}

答案 1 :(得分:0)

List [0] .GetComponent(); 问题解决了。感谢您的回复。