I double checked on 的意思应该改为我重新检查了

playerMovement(using UnityEngine;

public class playerMovement : MonoBehaviour

{

private float speed=8f;

private bool isWalking;

private void Update()

{

Vector2 inputV=new Vector2(0,0);

if (Input.GetKey(KeyCode.W))

{

inputV.y=+1;

}

else if (Input.GetKey(KeyCode.S))

{

inputV.y=-1;

}

else if (Input.GetKey(KeyCode.A))

{

inputV.x=-1;

}

else if (Input.GetKey(KeyCode.D))

{

inputV.x=+1;

}

inputV=inputV.normalized;

Vector3 movDir=new Vector3(inputV.x,0f,inputV.y);

transform.position += movDir*speed*Time.deltaTime;

isWalking= movDir != Vector3.zero;

float rotaion_speed=10f;

transform.forward=Vector3.Slerp(transform.forward,movDir,Time.deltaTime*rotaion_speed);

Debug.Log(inputV);

}

public bool Is_Walking()

{

return isWalking;

}

})

我重新检查了playerAnimator(using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class playerAnimator : MonoBehaviour

{

[SerializeField] playerMovement player;

private Animator animator;

private void Awake()

{

animator=GetComponent<Animator>();

}

private void Update()

{

animator.SetBool("isWalking",player.Is_Walking());

}

}) 代码,但还是找不到问题。 但是当我将transform.forward=Vector3.Slerp(transform.forward,movDir,Time.deltaTime*rotation_speed) 改为其他地方的时候,并且没有将movDir替换成transform.forward,则角色可以正常移动,但没有身体旋转(显然是这样的)。