[英]Camera will not rotate using scripts in Unity3d
if (Input.GetKeyDown(KeyCode.E))
{
Camera.main.transform.eulerAngles = new Vector3(0, 180, 0);
}
此代碼應旋轉相機,使其面向播放器后面。 它意味着要成為一種“回頭看”功能。 問題是,事實並非如此。 它只是嚇壞了,並恢復到原始方向。 為什么是這樣?
當您按'E'鍵時,您沒有旋轉GameObject。 相反,您是在按“ E”鍵時將攝像機的旋轉度設置為相同的180值。 每按一次該鍵將始終為180。
如果你想給每個“E”鍵被按下時將相機旋轉180度,你必須增加與相機旋轉+=
,而不是只=
簡單地分配與180度一遍又一遍的角度:
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
對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.