【发布时间】:2021-10-17 03:13:18
【问题描述】:
我有两个附加到我的主相机对象的 c# 脚本。这些脚本围绕我的游戏对象旋转,还允许我放大和缩小。但我正在尝试平移。我该怎么做?
我有一些附加到我的主相机对象的类。它是旋转和放大和缩小。但它非常有限。我想通过游戏平移。我该怎么做?
这是我的旋转代码:
[SerializeField] private Camera cam;
private Vector3 previousPosition;
void Update()
{
Vector3 eulerAngles = transform.rotation.eulerAngles;
eulerAngles = new Vector3(0, eulerAngles.y, 0);
transform.rotation = Quaternion.Euler(eulerAngles);
if (Input.GetMouseButtonDown(2))
{
previousPosition = cam.ScreenToViewportPoint(Input.mousePosition);
}
if (Input.GetKey(KeyCode.LeftShift) && Input.GetMouseButton(2))
{
Vector3 direction = previousPosition - cam.ScreenToViewportPoint(Input.mousePosition);
cam.transform.RotateAround(new Vector3(), new Vector3(1, 0, 0), direction.y * 45);
cam.transform.RotateAround(new Vector3(), new Vector3(0, 1, 0), -direction.x * 360);
// cam.transform.RotateAround(new Vector3(), new Vector3(1, 0, 0), -direction.y * 360);
previousPosition = cam.ScreenToViewportPoint(Input.mousePosition);
}
}
这是我的缩放代码:
[SerializeField] private Camera cam;
void Update()
{
if (Input.GetAxis("Mouse ScrollWheel") > 0)
{
cam.GetComponent<Camera>().fieldOfView--;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0)
{
cam.GetComponent<Camera>().fieldOfView++;
}
}
正如我所提到的,它们都连接到我的主摄像头。这些脚本的问题是我想平移而这些脚本不这样做。如何围绕我的游戏对象平移我的相机?
【问题讨论】: