首页 > 解决方案 > Unity3D 角色面向其移动方向

问题描述

我正在制作一个游戏,它包含行星引力,我怎样才能让玩家看到它正在移动的方向,如果我可以将它插入到我的运动代码中会很有帮助

using UnityEngine;

public class PlayerMovementScript : MonoBehaviour {

public float moveSpeed;

private Vector3 moveDirection;

void Update()
{
    moveDirection = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")).normalized;
}

void FixedUpdate()
{
    GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position + transform.TransformDirection(moveDirection) * moveSpeed * Time.deltaTime);
}
}

标签: c#unity3d

解决方案


您可以使用刚体的速度查看您正在移动的方向。

transform.rotation = Quaternion.LookRotation(rb.velocity);

如果你想要一个平滑的过渡:

Quaternion desiredRotation = Quaternion.LookRotation(rb.velocity);
transform.rotation = Quaternion.Slerp(transform.rotation, desiredRotation, Time.deltaTime);

推荐阅读