Unity3D_(API)Random隨機數
阿新 • • 發佈:2018-11-11
Unity隨機數Random官方文件: 傳送門
一、生成一個隨機數
二、Random.InitState()生成偽隨機數
三、官方文件中常用的方法
建立一個Cube用來掛載Random_Gary.cs指令碼
整數型別:Random.Range(min,max): 返回一個隨機整數,在min(包含)和max(不包含)之間
小數型別:Random.Range(minf,maxf)時,返回一個隨機浮點數,在minf(包含)和maxf(包含)之間。此時包括臨界值
一、生成一個隨機數
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Random_Gary : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { print(Random.Range(Random_Gary.cs4,10)); } }
二、Random.InitState(0)生成偽隨機數
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Random_Gary : MonoBehaviour { // Use this for initialization void Start () { //設定一個種子 Random.InitState(0Random_Gary.cs); } // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.Space)) { print(Random.Range(4,100)); } } }
可以看出,場景中第一次生成了26、26、68、42、13,第二次重新載入場景時,依然是這幾個數,這就和在Start()函式中設定的隨機種子有關了
要設定隨機種子可用 System.DateTime.Now.Ticks
DataTime.Now.Ticks 的值表示自 0001 年 1 月 1 日午夜 12:00:00 以來所經歷的以 100 納秒為間隔的間隔數,可用於較精確的計時
返回的是一個long型別,強轉為int型別
//設定一個種子 Random.InitState(0); //設定一個隨機種子 Random.InitState((int)System.DateTime.Now.Ticks);
三、官方文件中常用的方法
Random.value:可隨機生成三種顏色 傳送門
Random.state:可儲存生成隨機序列的狀態 傳送門
Random.rotation:可隨機得到遊戲物體一個朝向得到一個四元數 傳送門
Random.insideUnitCircle:可避免在同一個位置生成兩個敵人 傳送門