【发布时间】:2019-09-17 13:26:17
【问题描述】:
在 Unity 中,我有一个具有以下结构的相机
GameObject Pan
=> GameObject Rotation
=> GameObject Zoom
=> GameObject Camera (the component that have the camera script)
我有一个对象目标
GameObject target;
我想围绕该对象向所有方向旋转。就像是一架飞行的飞机,所以我可以左右上下旋转。
我有以下代码
void ChangePosition()
{
if(Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0)
{
if (target)
{
transform.RotateAround(target.transform.position, transform.right, -Input.GetAxis("Vertical") * speed);
transform.RotateAround(target.transform.position, transform.up, -Input.GetAxis("Horizontal") * speed);
rotationObject.transform.LookAt(target.transform.position);
}
}
}
当你只向左或向上移动时效果很好。
但是如果你同时移动展位,旋转就不再直观了。它还会在自己身上旋转相机。
我希望相机只向左或向上移动(所以围绕 2 轴旋转,但从不旋转)
我该如何解决?
【问题讨论】:
-
你的意思是它不直观..
-
如果你尝试一下你会明白的代码,它不会沿对角线移动,而是会在自己身上滚动