if (Input.GetKeyDown(KeyCode.E))
{
Camera.main.transform.eulerAngles = new Vector3(0, 180, 0);
}
此代码应旋转相机,使其面向播放器后面。它意味着要成为一种“回头看”功能。问题是,事实并非如此。它只是吓坏了,并恢复到原始方向。为什么会这样?
答案 0 :(得分:2)
按“ E”键时不会旋转GameObject。相反,您是在按“ E”键时将摄像机的旋转度设置为相同的180值。每按一次该键将始终为180。
如果您想在每次按“ E”键时将摄像机旋转180度,则必须使用+=
而不是仅仅=
来增加摄像机的旋转,而只需使用180 deg一遍又一遍:
void Update()
{
if (Input.GetKeyDown(KeyCode.E))
{
Camera.main.transform.eulerAngles += new Vector3(0, 180, 0);
}
}
您也可以使用transform.Rotate
:
void Update()
{
if (Input.GetKeyDown(KeyCode.E))
{
Camera.main.transform.Rotate(new Vector3(0, 180, 0));
}
}
请注意,我如何使用Update
函数成为FixedUpdate
,是用来向Rigidbody
对象添加物理力。