はじめに
「UnityRandom」を Unity プロジェクトに導入することで
豊富な乱数アルゴリズムを使用できるようになります
使用例
using System.Collections.Generic; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { // 初期化 var urand = new UnityRandom(); // 初期化(シード値指定) //var urand = new UnityRandom( 123456 ); // 0 - 1 print( urand.Value() ); // 1 - 100 print( urand.Range( 1, 100 ) ); // ポアソン分布 print( urand.Possion( 5 ) ); // 指数分布 print( urand.Exponential( 5 ) ); // ガンマ分布 print( urand.Gamma( 5 ) ); // L = 1 の正方形の中のランダムな Vector2 の点 print( urand.PointInASquare() ); // R = 1 の円の中のランダムな Vector2 の点 print( urand.PointInACircle() ); // R = 1 のディスクの中のランダムな Vector2 の点 print( urand.PointInADisk() ); // L = 1 の立方体の中のランダムな Vector3 の点 print( urand.PointInACube() ); // L = 1 の立方体の表面のランダムな Vector3 の点 print( urand.PointOnACube() ); // R = 1 の球体の中のランダムな Vector3 の点 print( urand.PointInASphere() ); // R = 1 の球体の表面のランダムな Vector3 の点 print( urand.PointOnASphere() ); // ランダムな色 print( urand.Rainbow() ); // ダイスロール print( urand.RollDice( 2, URandom.DiceRoll.DiceType.D6 ) ); // ランダムに並べ替えたリストから順に取得 var shufflebag = new float[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var thebag1 = urand.ShuffleBag( shufflebag ); print( thebag1.Next() ); // ランダムに並べ替えたリストから順に取得(ウェイト指定) var wshufflebag = new Dictionary<float,int> { { 1, 5 }, { 2, 45 }, { 3, 25 }, { 4, 25 }, }; var thebag2 = urand.ShuffleBag( wshufflebag ); print( thebag2.Next() ); } }