using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace WildAttack
{
///
/// 敌人池
///
public class EnemyPool : Singleton, IObjectPool
{
#region Members
private Dictionary> enemyObjs;
private List enemyPfbs;
private Transform poolTrans;
#endregion
#region Override
public void Init()
{
poolTrans = GameObject.Find("EnemyPool").transform;
enemyObjs = new Dictionary>();
enemyObjs.Add(1, new List());
enemyObjs.Add(2, new List());
enemyObjs.Add(3, new List());
enemyPfbs = new List();
GameObject pfb1 = Resources.Load("Enemy/yellow/duyanguai_skin_jiandun");
GameObject pfb2 = Resources.Load("Enemy/yellow/duyanguai_skin_fudun");
GameObject pfb3 = Resources.Load("Enemy/yellow/duyanguai_skin_maodun");
enemyPfbs.Add(pfb1);
enemyPfbs.Add(pfb2);
enemyPfbs.Add(pfb3);
for (int i = 0; i < ProcessModule.GetInstance().processDataDic[ProcessModule.GetInstance().processDataDic.Count].monsterId.Count; i++)
{
GameObject enemy = GameObject.Instantiate(pfb1, poolTrans);
enemy.SetActive(false);
enemyObjs[1].Add(enemy);
}
for (int i = 0; i < ProcessModule.GetInstance().processDataDic[ProcessModule.GetInstance().processDataDic.Count].monsterId.Count; i++)
{
GameObject enemy = GameObject.Instantiate(pfb2, poolTrans);
enemy.SetActive(false);
enemyObjs[2].Add(enemy);
}
for (int i = 0; i < ProcessModule.GetInstance().processDataDic[ProcessModule.GetInstance().processDataDic.Count].monsterId.Count; i++)
{
GameObject enemy = GameObject.Instantiate(pfb3, poolTrans);
enemy.SetActive(false);
enemyObjs[3].Add(enemy);
}
}
public GameObject GetGameObject()
{
return null;
}
public void RecycleAll()
{
for (int i = 0; i < poolTrans.childCount; i++)
{
if (poolTrans.GetChild(i).gameObject.activeSelf)
{
poolTrans.GetChild(i).gameObject.SetActive(false);
}
}
}
#endregion
#region Functions
///
/// 根据武器类型取对应obj
///
///
///
public GameObject GetGameObject(int id)
{
GameObject enemy;
for (int i = 0; i < enemyObjs[id].Count; i++)
{
if (!enemyObjs[id][i].activeInHierarchy)
{
return enemyObjs[id][i];
}
}
enemy = GameObject.Instantiate(enemyPfbs[id]);
enemyObjs[id].Add(enemy);
return enemy;
}
#endregion
}
}