public BattleUnitAI CreateAIObject(BattleUnit battleUnit, int resID) { if (!DataManager.AITable.ContainsKey(resID)) { return(null); } AITableItem aiItem = DataManager.AITable[resID] as AITableItem; if (aiItem == null) { return(null); } if (!aiList.ContainsKey(aiItem.type)) { return(null); } BattleUnitAI ai = aiList[aiItem.type].CreateAIType(battleUnit); if (ai == null || !ai.Init(resID)) { return(null); } return(ai); }
public override void SetPerformer <T>(T unit) { _performer = unit as BattleUnitAI; if (_performer == null) { Debug.LogError("Performer is not " + typeof(BattleUnitAI) + " type"); } }
override public void Destroy() { if (mBattleUintAI != null) { mBattleUintAI.Destory(); mBattleUintAI = null; } if (mActionCenter != null) { mActionCenter.Destroy(); mActionCenter = null; } if (mSkillEffectManager != null) { SkillDetails.OnSkillEffectOwnerEvent(mSkillEffectManager, SkillEffectOwnerEventDef.OwnerLeaveScene); mSkillEffectManager.Destroy(); mSkillEffectManager = null; } mActiveFlagsContainer = null; mRandEventContainer = null; mHitMaterialEffectCdContainer = null; mProperty = null; mUIShield = null; base.Destroy(); for (int i = 0; i < mAttachMents.Length; ++i) { AttachMent attach = mAttachMents[i]; if (attach != null && attach.visual != null) { attach.visual.Destroy(); } mAttachMents[i] = null; } }