簡體   English   中英

如何生成一次 Random.Range 值,然后在 void Update 中使用它來移動? 團結,C#

[英]How do I generate a Random.Range value once, and then use it in void Update to move? Unity, C#

所以,我想為我正在(嘗試)制作的游戲生成一個隨機速度和旋轉值,但如果我在更新 function 中生成這些值,它將繼續每幀生成新值,但如果我生成Start function 中的值,更新 function 無法識別它:這是我現在擁有的腳本(不起作用):

    void Start()
    {
        float randomRotation = Random.Range(0, 360f);
        float randomSpeed = Random.Range(1f, 5f);
    }

    void Update()
    {
        transform.rotation = Quaternion.Euler(0, 0, randomRotation);
        Vector3 pos = transform.position;
        Vector3 velocity = new Vector3(0, randomSpeed, 0);
        pos += transform.rotation * velocity;
        transform.position = pos;
    }

這里的問題是 Update void 不知道 randomRotation 是什么意思,所以它不能做任何事情,但是如果我嘗試public float randomRotation它看起來整個腳本會被混淆並且我得到一個編譯器錯誤: error CS1022: Type or namespace definition, or end-of-file expected有誰知道如何解決這個問題?

謝謝!

您必須在開始 function 之外定義randomSeed (和randomRotation )變量,如下所示:

float randomRotation = 0.0f;
float randomSpeed = 0.0f;

void Start()
{
    randomRotation = Random.Range(0, 360f);
    randomSpeed = Random.Range(1f, 5f);
}

void Update()
{
    transform.rotation = Quaternion.Euler(0, 0, randomRotation);
    Vector3 pos = transform.position;
    Vector3 velocity = new Vector3(0, randomSpeed, 0);
    pos += transform.rotation * velocity;
    transform.position = pos;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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