我的朋友们,大家好。
我正在尝试在 Unity 中制作一款 3D 游戏,在其中我尝试使用简单的 WASD 键移动我的角色。
然而,它只能从一个方向取得成功。 从相反的方向看,控制似乎颠倒了。 即使我用鼠标环顾四周。 该游戏被认为是第一人称射击游戏(FPS)。
玩家代码是:
[SerializeField]
private NavMeshAgent navMeshAgent;
// Start is called before the first frame update
void Start()
{
controller = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
Vector3 direction = new Vector3(Input.GetAxis("Horizontal1"), 0, Input.GetAxis("Vertical1"));
Vector3 velocity = direction * speed;
velocity.y -= gravity;
velocity = transform.TransformDirection(velocity);
controller.Move(direction * Time.deltaTime);
transform.position = navMeshAgent.nextPosition;
}
我该怎么办? 我非常感谢您的帮助。
尝试这个示例,使用你自己的逻辑移动你的角色并更改必须更改的内容
private float speed = 2.0f;
public GameObject character;
void Update () {
if (Input.GetKeyDown(d)){
transform.position += Vector3.right * speed * Time.deltaTime;
}
if (Input.GetKeyDown(a)){
transform.position += Vector3.left* speed * Time.deltaTime;
}
if (Input.GetKeyDown(w)){
transform.position += Vector3.forward * speed * Time.deltaTime;
}
if (Input.GetKeyDown(s)){
transform.position += Vector3.back* speed * Time.deltaTime;
}
}