public void OnEnemyBorn(object[] args) { var enemy = args[0] as Enemy; UIHpBar new_hp_bar = PoolManager.Allocate(hpBar); new_hp_bar.transform.parent = recycleFolder; new_hp_bar.Reset(enemy); enemy_hpbar_map_.Add(enemy, new_hp_bar); }
private SpriteRenderer CreateGroundTile(SpriteRenderer tile, TerrainStyle.GroundStyle style, float offset) { var new_tile = PoolManager.Allocate(tile); new_tile.transform.parent = graphics; new_tile.transform.localScale = style.scale; new_tile.transform.localPosition = new Vector3(offset, 0, 0); return(new_tile); }
public static void SceneHook() { var managerObject = new GameObject("PoolManager"); DontDestroyOnLoad(managerObject); Instance = managerObject.AddComponent <PoolManager>(); Instance.Allocate(); SceneManager.sceneUnloaded += (Scene s) => { pools.Clear(); }; }
public Enemy CreateEnemy(EnemyData data, Transform parent_transform) { EnemyBundle enemy_bundle; if (enemies_map_.TryGetValue(data.enemyType, out enemy_bundle)) { Enemy new_enemy = PoolManager.Allocate(enemy_bundle.prefab); new_enemy.SpawnSelf(data, parent_transform); return(new_enemy); } else { throw new System.NotImplementedException("Not implemented enemy type: " + data.enemyType); } }
public TerrainComponent CreateTerrain(TerrainData data, Transform parent_transform) { TerrainComponent terrain; switch (data.terrainType) { case TerrainData.TerrainType.Ground: terrain = PoolManager.Allocate(terrains.ground); break; default: throw new System.NotImplementedException("Not implemented terrain type: " + data.terrainType); } terrain.BuildSelf(data, terrains.style, parent_transform); return(terrain); }