/// <summary>/// 供调用的角色运动主方法/// </summary>/// <param name="move"></param>/// <param name="crouch"></param>/// <param name="jump"></param>publicvoidMove(Vector3 move,bool crouch,bool jump){
// convert the world relative moveInput vector into a local-relative// turn amount and forward amount required to head in the desired// direction.if(move.magnitude >1f) move.Normalize();
move = transform.InverseTransformDirection(move);CheckGroundStatus();
move = Vector3.ProjectOnPlane(move, m_GroundNormal);
m_TurnAmount = Mathf.Atan2(move.x, move.z);
m_ForwardAmount = move.z;ApplyExtraTurnRotation();// control and velocity handling is different when grounded and airborne:if(m_IsGrounded){
HandleGroundedMovement(crouch, jump);}else{
HandleAirborneMovement();}ScaleCapsuleForCrouching(crouch);PreventStandingInLowHeadroom();// send input and other state parameters to the animatorUpdateAnimator(move);}