void CheckDisposeObject(poolObject poolObject) { if (poolObject.transform.position.x < -defaultSpawnPos.x) { poolObject.Dispose(); poolObject.transform.position = Vector3.one * 1000; } }
public ObjectInstance(GameObject objectInstance) { gameObject = objectInstance; transform = gameObject.transform; gameObject.SetActive(false); if (gameObject.GetComponent <poolObject>()) { hasPoolObjectComponent = true; poolObjectScript = gameObject.GetComponent <poolObject>(); } }
void Configure() { targetAspect = targetAspectRatio.x / targetAspectRatio.y; poolobjects = new poolObject[poolSize]; for (int i = 0; i < poolobjects.Length; i++) { GameObject go = Instantiate(Prefab) as GameObject; Transform t = go.transform; t.SetParent(transform); t.position = Vector3.one * 1000; poolobjects[i] = new poolObject(t); } if (spawnImmediate) { SpawnImediate(); } }
public void Recycle(Enemy enemy) { enemy.gameObject.SetActive(false); if (pool.Count > poolSize) //删掉多余 { int id = enemy.gameObject.GetHashCode(); for (int i = 0; i < pool.Count; i++) { poolObject pObj = pool[i]; if (id == pObj.hashID) { pool.Remove(pObj); break; } } Destroy(enemy.gameObject); } }