示例#1
0
    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");
     }
 }
示例#3
0
    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;
        }
    }