1. 程式人生 > >Unity3D_(API)Random隨機數

Unity3D_(API)Random隨機數

 

 

  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(
4,10)); } }
Random_Gary.cs

 

  

二、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(0
); } // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.Space)) { print(Random.Range(4,100)); } } }
Random_Gary.cs

 

  可以看出,場景中第一次生成了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:可避免在同一個位置生成兩個敵人  傳送門