public T Spawn(T gameObject, Vector3 position, Quaternion rotation) { if (!poolDictionary.ContainsKey(gameObject)) { poolDictionary.Add(gameObject, new List <T>()); } T objectToSpawn = poolDictionary[gameObject].Find(foundObject => !GetGameObject(foundObject).activeSelf); if (objectToSpawn == null) { if (useZenject) { objectToSpawn = ZenjectUtilities.Instantiate(gameObject, position, rotation, parent); } else { objectToSpawn = Instantiate(gameObject, position, rotation, parent); } poolDictionary[gameObject].Add(objectToSpawn); } else { var gameObjectToSpawn = GetGameObject(objectToSpawn); gameObjectToSpawn.transform.position = position; gameObjectToSpawn.transform.rotation = rotation; gameObjectToSpawn.SetActive(true); } return(objectToSpawn); }
private void CreateTower() { var pivot = transform.parent; var tower = ZenjectUtilities.Instantiate(towerPrefab, pivot.position, towerPrefab.transform.rotation, pivot); towerSpot.SetTower(tower); Close(); }