123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using CommonAI.ZoneClient;
- using ET;
- using ET.Client;
- using UnitType = CommonAI.Zone.UnitInfo.UnitType;
- class BattleUnitFactory : Singleton<BattleUnitFactory>//, ISingletonUpdate
- {
- public BattleObject Create(ZoneObject zo)
- {
- BattleObject unit = null;
- if(zo is ZoneActor)
- {
- unit = ObjectPool.Instance.Fetch<BattleActor>();
- }
- else if (zo is ZoneUnit)
- {
- ZoneUnit zu = zo as ZoneUnit;
- switch (zu.Info.UType)
- {
- case UnitType.TYPE_PLAYER://玩家单位.
- unit = ObjectPool.Instance.Fetch<BattlePlayer>();
- break;
- case UnitType.TYPE_MONSTER://怪物.
- unit = ObjectPool.Instance.Fetch<BattleMonster>();
- break;
- case UnitType.TYPE_BUILDING://建筑.
- case UnitType.TYPE_NPC://NPC.
- case UnitType.TYPE_NEUTRALITY://NPC.
- case UnitType.TYPE_SUMMON://召唤单位.
- case UnitType.TYPE_PET:
- case UnitType.TYPE_TRIGGER: //触发机关
- default:
- Log.Error($"unknow object enter:{zu.Info.UType} ID:{zu.TemplateID}");
- break;
- }
- }
- else if (zo is ZoneSpell)
- {
- unit = ObjectPool.Instance.Fetch<BattleSpell>();
- }
- else if (zo is ZoneItem)//掉落物
- {
- }
- return unit;
- }
- }
|