void Update() { if (mObj == null || mObj.mIsDead) { mPursuitTarget = null; return; } if (mObjAnimatorComponent.GetInjuredState()) { return; } // 如果当前有追击目标,执行追击操作 if (mPursuitTarget != null) { Pursuit(); return; } // 当前没有追击目标,开启巡逻模式 mAoiListCount = mObj.mAOIList.Count; if (mAoiListCount < 1) { return; } for (int i = 0; i < mAoiListCount; ++i) { IObject obj = mObj.mAOIList[i]; if (obj == null) { continue; } if (obj is CRoleObject) { if (UtilTools.Vec2Distance(obj, mObj) <= mMaxPursuitRange && mPursuitType != PursuitType.PursuitType_Back) { mPursuitTarget = obj; } return; } } }