PartOfWorldView CreatePooledObject(Controllers.PlayerLeavePartOfWorldSignal playerLeavePartOfWorldSignal) { PartOfWorldView newPart = Instantiate(GameWorldModel.Instance.PartOfWorldPrefab); pooledObjects.Add(newPart); newPart.gameObject.SetActive(false); newPart.InitSignal(playerLeavePartOfWorldSignal); return(newPart); }
public PartOfWorldView CreateNewPart(Controllers.PlayerLeavePartOfWorldSignal playerLeavePartOfWorldSignal) { InitializePool(playerLeavePartOfWorldSignal); PartOfWorldView newPart = pooledObjects.Find(nowPart => !nowPart.gameObject.activeInHierarchy); if (newPart == null) { newPart = CreatePooledObject(playerLeavePartOfWorldSignal); } newPart.gameObject.SetActive(true); return(newPart); }
private void InitializePool(Controllers.PlayerLeavePartOfWorldSignal playerLeavePartOfWorldSignal) { if (pooledObjects != null) { return; } pooledObjects = new List <PartOfWorldView>(); for (int nowObjectIndex = 0; nowObjectIndex < startPoolSize; nowObjectIndex++) { CreatePooledObject(playerLeavePartOfWorldSignal); } }