Ejemplo n.º 1
0
 public void Move(List <TSVector> movePath)
 {
     if (CanMove())
     {
         m_cMove.Move(m_sCurPosition, movePath, m_sMoveSpeed);
     }
 }
        protected override void OnEnter(RemoteBlackBoard blackBoard)
        {
            m_sDistance = 0;
            m_cRemote   = blackBoard.remote;
            var remoteTargetType = blackBoard.remote.remoteData.remoteTarget;

            switch (remoteTargetType)
            {
            case RemoteTargetType.Target:
                m_sTargetPosition = m_cRemote.target.curPosition;
                break;

            case RemoteTargetType.TargetForward:
                m_sTargetPosition = m_cRemote.curPosition + m_cRemote.targetForward * m_cActionData.maxDistance;
                break;

            case RemoteTargetType.TargetPosition:
                m_sTargetPosition = m_cRemote.targetPosition;
                break;
            }
            m_cPointMove.Clear();
            m_cPointMove.OnMoveStart += OnStartMove;
            m_cPointMove.OnMove      += OnMove;
            m_cPointMove.OnMoveStop  += OnStopMove;
            m_cPointMove.OnWillMove  += OnWillMove;
            m_cPointMove.Move(m_cRemote.curPosition, m_sTargetPosition, m_cActionData.speed);
            m_eCurActionResult = BTActionResult.Running;
        }