unity 3d 自动将角色旋转至移动方向
时间: 2023-07-31 16:09:52 浏览: 51
可以通过以下代码来实现角色自动旋转至移动方向:
```csharp
using UnityEngine;
public class AutoRotate : MonoBehaviour
{
public float rotationSpeed = 10f; // 旋转速度
private Vector3 lastPosition; // 上一帧位置
private void Update()
{
Vector3 currentPosition = transform.position; // 当前位置
if (lastPosition != currentPosition) // 如果有移动
{
Vector3 direction = currentPosition - lastPosition; // 移动方向
direction.y = 0f; // 忽略垂直方向
if (direction.magnitude > 0.1f) // 如果移动距离足够大
{
Quaternion targetRotation = Quaternion.LookRotation(direction); // 目标旋转
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * rotationSpeed); // 旋转
}
}
lastPosition = currentPosition; // 更新上一帧位置
}
}
```
将此脚本挂载到角色上,即可实现自动旋转至移动方向的效果。