0
여러 GameObject pools을 사용하고 싶으므로 manager 풀이 필요하지만 사용 방법을 이해하지 못하고 어떤 문서도 찾을 수 없습니다.GVR 풀 및 풀 관리자 사용 방법
"enemy"라는 GameObject를 사용하는 새 풀을 어떻게 정의해야합니까?
GameObjectPool에서 새로운 구체적인 클래스를 상속 받아야하나요?
여러 GameObject pools을 사용하고 싶으므로 manager 풀이 필요하지만 사용 방법을 이해하지 못하고 어떤 문서도 찾을 수 없습니다.GVR 풀 및 풀 관리자 사용 방법
"enemy"라는 GameObject를 사용하는 새 풀을 어떻게 정의해야합니까?
GameObjectPool에서 새로운 구체적인 클래스를 상속 받아야하나요?
풀 관리자에는 Awake에서 설정된 정적 인스턴스가 있습니다. Scene의 GameObject에 ObjectPoolManager 스크립트를 첨부해야합니다.
그럼 당신은 다른 게임 오브젝트에 대한 풀을 만들 수 있습니다
public class GameManager : MonoBehaviour {
public GameObject enemyPrefab;
public GameObject itemPrefab;
public GameObject characterPrefab;
const int enemyCount = 100;
const int itemCount = 100;
private GameObjectPool EnemyPool {
get {
GameObjectPool pool = ObjectPoolManager.Instance.GetPool<GameObjectPool> (enemyPrefab.name);
if (pool == null) {
pool = new GameObjectPool(enemyPrefab, enemyCount);
ObjectPoolManager.Instance.AddPool(enemyPrefab.name, pool);
}
return pool;
}
}
private GameObjectPool ItemPool {
get {
GameObjectPool pool = ObjectPoolManager.Instance.GetPool<GameObjectPool> (itemPrefab.name);
if (pool == null) {
pool = new GameObjectPool(itemPrefab, itemCount);
ObjectPoolManager.Instance.AddPool(itemPrefab.name, pool);
}
return pool;
}
}
// Use this for initialization
void Start() {
StartCoroutine(SpawnEnemy (1f));
}
IEnumerator SpawnEnemy(float t) {
for (int i = 0; i < enemyCount; ++i) {
GameObject newEnemy = EnemyPool.Borrow();
newEnemy.transform.position = Random.insideUnitSphere;
yield return new WaitForSeconds (t);
}
}
}