C# 从数组中获取索引,比较数组中每个索引的属性
我可以这样做吗?C# 从数组中获取索引,比较数组中每个索引的属性,c#,arrays,unity3d,C#,Arrays,Unity3d,我可以这样做吗? Array.IndexOf(Array, (index.propery == true)) 其中,index等于IndexOf自身的增量 我为什么问这个问题: 我使用Unity,我有许多对象,它们是游戏中一个更大或整个对象的组成部分。我想使用Unity的编辑器将这些对象分配给游戏中的变量。稍后我需要迭代这些对象。我希望将它们放在一个数组中(因为unity仍然可以编辑它们)。问题从数组中我无法访问具有完整索引的对象开始。我想按名称引用组件,Unity无法访问字典(并且会产生性能
Array.IndexOf(Array, (index.propery == true))
其中,index等于IndexOf自身的增量
我为什么问这个问题:我使用Unity,我有许多对象,它们是游戏中一个更大或整个对象的组成部分。我想使用Unity的编辑器将这些对象分配给游戏中的变量。稍后我需要迭代这些对象。我希望将它们放在一个数组中(因为unity仍然可以编辑它们)。问题从数组中我无法访问具有完整索引的对象开始。我想按名称引用组件,Unity无法访问字典(并且会产生性能开销) 我的解决方案,我想问的是,是否可以通过使用IndexOf()搜索数组索引来访问它,但是我可以通过在每个索引处使用游戏对象的名称来搜索它吗
GameObject result = Array.IndexOf(GOArray, GOArray[INDEX].gameObject.name == "theoneiwant")
您有一个数组。查找:
GameObject result = Array.Find(GOArray, g => g.name == "theoneiwant");
请注意,这不是很有效。如果您想提高速度,最好使用字典,也许可以在启动时从数组中预构建字典。尝试使用此方法获取索引
var index = Array.FindIndex(yourArray, gameobj => gameobj.propery == true);
更新好吧,也许我不太理解你的问题
- 如果您的
具有唯一的名称,您只需通过名称即可找到它们,这是快速可靠的:游戏对象
public GameObject targetObj; targetObj = GameObject.Find("objectname");
- 但如果他们没有,您可以创建一个游戏对象列表,将您的游戏对象分配给该列表,然后使用以下代码进行搜索:
public List<GameObject> myObjList = new List<GameObject>(); public GameObject targetObj; targetObj= myObjList.Where(x => x.name == "objectname").SingleOrDefault();
public List myObjList=new List(); 公共游戏对象targetObj; targetObj=myObjList.Where(x=>x.name==“objectname”).SingleOrDefault();
使用名称或任何要查找的属性。可以使用lambda表达式