【发布时间】:2022-02-17 14:35:52
【问题描述】:
我正在统一制作一款游戏,玩家可以在地图上移动,当他们按住空格键时,相机会旋转 180 度,这样他们就可以看到他们的身后。
当玩家按住空格键时,我还希望相机在玩家正上方移动(此时相机位于玩家后面看着玩家)向后看。
这是我必须旋转相机以及重新定位相机的代码:
Quaternion halfRotation = Quaternion.Euler(14, 180, 0);
if (Input.GetKey(KeyCode.Space))
{
if (!globalScript.lookBack)
{
globalScript.lookBack = true;
transform.rotation *= halfRotation;
transform.position = new Vector3(transform.parent.position.x, transform.parent.position.y + 1, transform.parent.position.z);
}
}
else if (globalScript.lookBack)
{
globalScript.lookBack = false;
transform.rotation *= Quaternion.Inverse(halfRotation);
}
当按下空格键时,我在第二个 if 语句中更改了作为玩家子级的相机的位置。这会将相机移动到我希望它在回首时的位置,但我正在努力弄清楚如何在释放空间时将其放回原来的位置。
我希望它恢复到的位置是 (0,4,-9)
如何将其恢复到此位置?
【问题讨论】:
-
移动方式相同。你可以回弹或回弹。
-
在回溯发生之前,相机的本地位置通常是多少?
-
回看前的位置通常在x=0, y=4, z=-9
标签: c# unity3d game-development