示例#1
0
        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();
            }
        }
示例#2
0
 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();
 }
示例#6
0
 public override void ExitState(FSMBase fsm)
 {
     //人物移动类激活
     fsm.GetComponent <PlayerMovementKeys> ().enabled = false;
 }