array
の変数を一度シャッフルしたいので、私はShuffle
メソッドをStart()
から呼び出しました。Unityのシャッフル配列
次に、更新からシャッフルされた配列にアクセスしようとしましたが、できません。どうすればそれにアクセスできますか?一度アレイをシャッフルして永遠に使用する方法はありますか?
private System.Random _random = new System.Random();
float sec;
float timecount;
float starttime;
void Start() {
starttime = Time.time;
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8};
Shuffle(array);
foreach (int value in array)
{
Debug.Log(value);
}
}
void Update() {
//time
timecount = Time.time - starttime;
sec = (timecount % 60f);
if (Mathf.Round(sec) == 3f) {
//access shuffled array
Debug.Log(array[3]); <=====error here
}
}
//for shuffle number from array
void Shuffle(int[] array){
int p = array.Length;
for (int n = p-1; n > 0 ; n--)
{
int r = _random.Next(1, n);
int t = array[r];
array[r] = array[n];
array[n] = t;
}
}
しかし、私がグローバルに宣言した場合、例えば配列[1]を呼び出すと、値はシャッフルされているので、まだ配列[1] = 2です。 – Eeva
シャッフル方法? –
私はシャッフルメソッドを最初に呼び出しました。なぜなら、シャッフルしたいのは1回だけですから、シャッフルした数値を更新関数 – Eeva