unity写人物移动转向代码
时间: 2023-10-31 17:04:26 浏览: 56
当在Unity中编写人物移动和转向代码时,你可以使用以下代码示例作为参考:
```csharp
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;
private Rigidbody rb;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
private void Update()
{
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
// 移动
Vector3 movement = new Vector3(horizontalInput, 0f, verticalInput) * speed * Time.deltaTime;
rb.MovePosition(transform.position + movement);
// 转向
if (movement != Vector3.zero)
{
Quaternion toRotation = Quaternion.LookRotation(movement);
rb.MoveRotation(Quaternion.Lerp(transform.rotation, toRotation, 10f * Time.deltaTime));
}
}
}
```
这是一个简单的示例代码,将该代码添加到人物角色的游戏对象上,然后将其附加到场景中的角色上。代码中使用了`Rigidbody`组件来处理移动和转向。
在`Update`方法中,我们获取了水平和垂直输入的值,然后根据输入计算移动向量。使用`Rigidbody.MovePosition`方法来移动角色位置。
在转向方面,我们首先检查是否有移动输入。如果有移动输入,则计算目标旋转角度,并使用`Rigidbody.MoveRotation`方法来平滑地转向角色。
请注意,这只是一个基本的示例,你可以根据自己的项目需求进行修改和扩展。