unity相机向前移动的脚本
时间: 2024-09-30 21:03:33 浏览: 31
在Unity中让相机向前移动通常需要创建一个`CameraRig`组件,然后编写一个简单的脚本来控制相机平移。以下是一个基本的C#脚本示例,用于实现这一功能:
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraMovement : MonoBehaviour
{
public float speed = 5f; // 控制相机移动的速度
// Update is called once per frame
void Update()
{
float horizontal = Input.GetAxis("Mouse X"); // 获取水平方向输入(鼠标X轴)
float vertical = Input.GetAxis("Mouse Y"); // 获取垂直方向输入(鼠标Y轴)
// 转换输入值到相机的正前方和平移量
Vector3 movement = new Vector3(horizontal, 0, vertical);
movement *= speed * Time.deltaTime;
// 如果有竖直移动(向下滚动或WASD控制),同时移动相机向上或向下
movement.y = Mathf.Sign(movement.z); // 确保Z轴的正向与视图一致
transform.position += movement; // 移动相机
transform.LookAt(transform.position + Vector3.up); // 维持朝上视角
}
// 当按键按下时,让相机快速向前推进一段距离
void OnKeyDown(KeyCode key)
{
if (key == KeyCode.Space)
{
transform.position += Vector3.forward * speed * 5; // 快速前进
}
}
// 当按键释放时,停止快速移动
void OnKeyUp(KeyCode key)
{
if (key == KeyCode.Space)
{
transform.position = transform.position - Vector3.forward * speed * 5; // 回退至之前位置
}
}
}
```
这个脚本会在用户滚动鼠标时让相机左右移动,并支持WASD键或空格键进行短时间内的快速向前或向后移动。将此脚本附加到你的相机游戏对象上即可生效。
阅读全文