public void Run(BattleActor man, BattleActor baby, bool suc, RunAwayCallBack callback = null) { suc_ = suc; self_ = man; baby_ = baby; call_back_ = callback; Transform t1 = Battle.Instance.GetStagePointByIndex(man.BattlePos); if (null == t1) { return; } // man.ControlEntity.ActorObj.transform.Rotate(man.ControlEntity.ActorObj.transform.up, 180f); // man.ControlEntity.PlayEntityAction (GlobalValue.ActionName, GlobalValue.Action_Run); man.ControlEntity.SetAnimationParam(man.GetWeaponType() + GlobalValue.FMove, AnimatorParamType.APT_Float, GlobalValue.MoveMinGap * 2f); man.ControlEntity.SetEntityActionTime(2); GlobalInstanceFunction.Instance.Invoke(ExcuteRunAway, 2f); }
void ExcuteRunAway() { self_.ControlEntity.SetEntityActionTime(1); if (suc_) { self_.ControlEntity.MoveTo(self_.ControlEntity.ActorObj.transform.localPosition + self_.ControlEntity.ActorObj.transform.forward * 6f, Exit, false); if (baby_ != null) { baby_.ControlEntity.MoveTo(baby_.ControlEntity.ActorObj.transform.localPosition + self_.ControlEntity.ActorObj.transform.forward * 6f, null, false); } } else { Transform t1 = Battle.Instance.GetStagePointByIndex(self_.BattlePos); if (null == t1) { return; } self_.ControlEntity.ActorObj.transform.localRotation = t1.localRotation; self_.ControlEntity.SetAnimationParam(self_.GetWeaponType() + GlobalValue.FMove, AnimatorParamType.APT_Float, GlobalValue.MoveMinGap); call_back_(null); } }