コード例 #1
0
 private void nextStep()
 {
     if (m_wallWalkingState == WallWalkingState.none)
     {
         calGotoWallParam();
         m_wallWalkingState = WallWalkingState.gotoWall;
     }
     else if (m_wallWalkingState == WallWalkingState.gotoWall)
     {
         calClimbParam();
         m_wallWalkingState = WallWalkingState.climbWall;
         m_pFSM.animator.SetBool(hashid_isUpWall, true);
     }
     else if (m_wallWalkingState == WallWalkingState.climbWall)
     {
         m_pFSM.animator.SetBool(hashid_isUpWall, false);
         calWalkWallParam();
         m_wallWalkingState = WallWalkingState.wallWalking;
     }
     else if (m_wallWalkingState == WallWalkingState.wallWalking)
     {
         m_wallWalkingState = WallWalkingState.down;
         Vector3 angle = m_pFSM.transform.eulerAngles;
         angle.z = 0.0f;
         m_pFSM.transform.eulerAngles = angle;
         m_pFSM.animator.SetBool(hashid_isDownWall, true);
     }
     else
     {
         stopWallWalk();
     }
 }
コード例 #2
0
 public bool startWalkPos(Vector3 wallStartPos, Vector3 wallEndPos, float wallWidth, float walkLength, float walkHeight, Vector3 faceDirection)
 {
     if (!calWallWalkPos(wallStartPos, wallEndPos, wallWidth, walkLength, walkHeight, faceDirection))
     {
         return(false);
     }
     bWallWalking       = true;
     m_wallWalkingState = WallWalkingState.none;
     m_pFSM.animator.SetBool(hashid_isWallWalking, true);
     m_pFSM.animator.SetBool(hashid_isUpWall, false);
     m_pFSM.animator.SetBool(hashid_isDownWall, false);
     nextStep();
     updateStep();
     return(true);
 }
コード例 #3
0
    private void stopWallWalk(bool forceStop = false)
    {
        Vector3 angle = m_pFSM.transform.eulerAngles;

        angle.z = 0.0f;
        m_pFSM.transform.eulerAngles = angle;
        if (m_wallWalkingState < WallWalkingState.down && !forceStop)
        {
            m_wallWalkingState = WallWalkingState.down;
            m_pFSM.animator.SetBool(hashid_isDownWall, true);
        }
        else
        {
            m_pFSM.ChangeState((int)EntityState.Standing, IntPtr.Zero);
        }
    }