unity 按键盘a d相机进行平滑旋转 按w s人物进行平滑移动 相机跟随人物移动
时间: 2023-08-18 18:05:11 浏览: 118
你可以通过编写脚本来实现这个功能,以下是一个简单的示例脚本:
```csharp
public class CameraController : MonoBehaviour
{
public Transform player; // 人物的Transform组件
public float moveSpeed = 5f; // 人物移动速度
public float rotationSpeed = 10f; // 相机旋转速度
private Vector3 offset; // 相机与人物的距离
private void Start()
{
offset = transform.position - player.position;
}
private void LateUpdate()
{
// 获取键盘输入
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
// 计算相机旋转角度
float rotation = h * rotationSpeed * Time.deltaTime;
// 计算人物移动方向
Vector3 direction = new Vector3(h, 0, v).normalized;
// 计算人物移动距离
Vector3 moveDistance = direction * moveSpeed * Time.deltaTime;
// 更新相机位置和旋转
transform.position = player.position + offset;
transform.RotateAround(player.position, Vector3.up, rotation);
// 更新人物位置
player.position += moveDistance;
// 更新相机与人物的距离
offset = transform.position - player.position;
}
}
```
将这个脚本挂载到相机上,然后将人物的Transform组件赋值给`player`变量即可。当你按下键盘上的W和S键时,人物将沿着相机面向的方向移动。当你按下A和D键时,相机将围绕人物进行旋转。相机始终跟随人物移动,保持相对位置不变。
阅读全文