簡體   English   中英

使用Unity3d中的腳本,相機不會旋轉

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM