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