c# - 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);
}
}
解决方案
您可以使用刚体的速度查看您正在移动的方向。
transform.rotation = Quaternion.LookRotation(rb.velocity);
如果你想要一个平滑的过渡:
Quaternion desiredRotation = Quaternion.LookRotation(rb.velocity);
transform.rotation = Quaternion.Slerp(transform.rotation, desiredRotation, Time.deltaTime);
推荐阅读
- sql - 过滤的索引和更新
- javascript - 如何以角度复制div
- xcode - 无法安装 Firebase/InAppMessagingDisplay:它们需要更高的最低部署目标
- jquery - Bootstrap 的可折叠侧边栏 4+
- android - 为 SPP 连接创建虚拟蓝牙接口
- laravel - 需要在 URL 中的任务之后获取下一个任务
- typescript - 从json比较今天的日期和日期,然后显示名称
- python - 异步python requests.post()
- yolo - YOLO-Darknet 平均损失没有减少
- azure - 使用 azure cli 创建应用程序洞察