public override void ActionState(FSMBase fsm) { base.ActionState(fsm); //不断更新抵达目标位置的路径表 //获取位置 List <PathNode> pathList = fsm.GetPath(fsm.targetTF.position); //如果有路径而且不为路径长度不为1(1为自身位置) if (pathList != null && pathList.Count > 1) { //移动方法的路径列表设置 fsm.GetComponent <IMovePosition> ().SetPathList(pathList); //开始移动 fsm.GetComponent <IMovePosition> ().PathMoving(); } }
public override void EnterState(FSMBase fsm) { base.EnterState(fsm); //人物移动类激活 fsm.GetComponent <PlayerMovementKeys> ().enabled = true; //播放待机动画 // fsm.animator.SetBool() }
public override void EnterState(FSMBase fsm) { base.EnterState(fsm); //设置移动速度 fsm.characterStatus.SetMoveSpeed(fsm.movePercent); //获取随机路径:自身初始位置,半径为搜索半径的圆圈内,最低需为1格 Vector3 movePosition; List <PathNode> pathList = fsm.FindRandomPos(out movePosition); //设置路径位置 fsm.SetPatrolPosition(movePosition); //移动方法的路径列表设置 fsm.GetComponent <IMovePosition> ().SetPathList(pathList); //播放动画 // fsm.animator.SetBool() }
public override void ExitState(FSMBase fsm) { //停止移动 fsm.GetComponent <IMovePosition> ().StopPosition(); }
public override void ActionState(FSMBase fsm) { //开始移动 fsm.GetComponent <IMovePosition> ().PathMoving(); }
public override void ExitState(FSMBase fsm) { //人物移动类激活 fsm.GetComponent <PlayerMovementKeys> ().enabled = false; }