unity对象池索引角色脚本
时间: 2023-07-31 22:11:06 浏览: 105
下面是一个示例脚本,用于在Unity对象池中索引角色:
```csharp
using UnityEngine;
using System.Collections.Generic;
public class ObjectPool : MonoBehaviour
{
public GameObject prefab;
public int poolSize;
public List<GameObject> pool = new List<GameObject>();
public Dictionary<int, GameObject> poolIndex = new Dictionary<int, GameObject>();
void Start()
{
for (int i = 0; i < poolSize; i++)
{
GameObject obj = Instantiate(prefab);
obj.SetActive(false);
pool.Add(obj);
poolIndex.Add(i, obj);
}
}
public GameObject GetObject(int index)
{
GameObject obj = poolIndex[index];
if (obj != null)
{
obj.SetActive(true);
poolIndex.Remove(index);
return obj;
}
return null;
}
public void ReturnObject(int index, GameObject obj)
{
obj.SetActive(false);
poolIndex.Add(index, obj);
}
}
```
在这个示例脚本中,我们使用了一个List来存储对象池中的所有对象,并使用一个Dictionary来存储每个对象的索引标识符。在Start()函数中,我们创建了一定数量的对象,并将它们添加到对象池中。在GetObject()函数中,我们使用传入的索引标识符获取对象,并将其从对象池中移除。在ReturnObject()函数中,我们将对象重新添加到对象池中,并将其索引标识符添加到poolIndex字典中。
注意,这只是一个简单的示例脚本,您需要根据自己的需求来修改和扩展它。
阅读全文