using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectPool : MonoBehaviour
{
public GameObject prefab;
private Stack<GameObject> inactiveInstances = new Stack<GameObject>();
public GameObject GetObject(Transform parent)
{
GameObject spawnedGameObject;
if (inactiveInstances.Count > 0)
{
spawnedGameObject = inactiveInstances.Pop();
}
else
{
spawnedGameObject = GameObject.Instantiate(prefab);
PooledObject pooledObject = spawnedGameObject.AddComponent<PooledObject>();
pooledObject.pool = this;
}
spawnedGameObject.transform.SetParent(parent, false);
spawned
ObjectPool 对象池的代码
最新推荐文章于 2023-05-14 23:59:43 发布
这是一个Unity游戏引擎中的对象池实现,用于高效管理GameObject实例。通过`GetObject`方法从池中获取对象,`ReturnObject`方法将对象归还到池中,减少频繁创建和销毁对象的开销。对象池使用Stack来存储未激活的对象实例,并通过`PooledObject`组件来跟踪对象所属的池。
摘要由CSDN通过智能技术生成