Unity在foreach中怎么判断当前的物体在哪个索引里
时间: 2024-10-11 07:04:18 浏览: 33
在Unity中渲染大量物体DrawMeshInstancedIndirect、Computer shader回调示例
5星 · 资源好评率100%
在Unity中,如果你想要在`foreach`循环中获取数组或集合中每个元素的索引,你可以使用`System.Collections.IEnumerable`接口提供的`GetEnumerator()`方法,配合`IEnumerator`结构体一起使用。以下是一个示例,假设你有一个GameObject数组:
```csharp
public GameObject[] gameObjects;
void MyFunction()
{
foreach (int index, GameObject obj in enumerate(gameObjects))
{
// 在这里,index就是当前元素的索引
Debug.Log($"Element at index {index} is {obj.name}");
}
}
IEnumerator<int, GameObject> enumerate(GameObject[] array)
{
for (int i = 0; i < array.Length; i++)
{
yield return (i, array[i]);
}
}
```
在这个例子中,`enumerate`函数返回一个枚举器,每次迭代都会返回当前元素的索引和对应的GameObject。在`foreach`循环内部,你可以直接访问`index`变量来获取索引。
阅读全文