【发布时间】:2020-05-19 14:23:36
【问题描述】:
我正在编写主摄像机在 XZ 轴上的移动脚本。当光标接近相应的屏幕边缘之一时,相机应水平移动(向前、向后、向右、向左)。 左右运动完美无缺;
另一方面,在其 z 轴上向后移动相机不起作用,因为相机略微旋转。
因此,当您尝试将其水平向前移动时,它反而会更靠近对象。
Closer when it should move forward
if (Input.mousePosition.y >= Screen.height - brdThcknss)
{ //this line is to be replaced
//transform.Translate(Vector3.forward * Time.deltaTime * panSpeed);
}
if (Input.mousePosition.y <= brdThcknss)
{//this line is to be replaced
//transform.Translate(Vector3.back * Time.deltaTime * panSpeed);
}
if (Input.mousePosition.x >= Screen.width - brdThcknss)
{
transform.Translate(Vector3.right * Time.deltaTime * panSpeed);
}
if (Input.mousePosition.x <= brdThcknss)
{
transform.Translate(Vector3.left * Time.deltaTime * panSpeed);
}
还需要提到的是,无论相机的角度如何(相机轨道),相机都应该在世界的 XZ 平面上移动。我可以用什么替换注释行,以便相机执行所需的运动?
【问题讨论】:
-
请查看统一文档中transform.translate的重载方法。
标签: c# unity3d game-physics