機率

簡單機率

我們可以利用 Unity 提供的 Random.Range 來產生範圍內的隨機數,搭配判斷就可以產生機率的效果。

產生隨機數

Random.Range(最小值, 最大值);

  • 回傳值為 float。
  • 範圍中包含最小,但不包含最大值。
float r = Random.Range(0, 100);
if (r <= 10) {
    // 只有 10% 的機率會執行這裡的內容
}

隨機抽出

在遊戲中很多情況下是很多選項中,隨機抽出一個。

string[] items = new string[5] { "A", "B", "C", "D", "E" };

// 用 0 ~ 陣列長度產生亂數 r
int r = Random.Range(0, items.Length); 

// 印出 items 第 r 個物件
Debug.Log(items[r]); 

包成函數方便後續共用(使用List類型):

public T RandomGetOne<T>(List<T> list)
{
    int r = Random.Range(0, list.Count);
    return list[r];
}

使用方法

List<string> items = new List<string>();
items.Add("A");
items.Add("B");
items.Add("C");
items.Add("D");
Debug.Log(RandomGetOne(items));
Last Updated:
Contributors: Vincent Chen