C#で重複しないランダムな数値を返すサンプル
最大値分のINT配列に連番を入れ、中身をシャッフルします。
iniShuffle(最大値)
GetShulle()で値を取り出します。
public class ShuffleRandom
{
int[] reint;
int counter;
public void iniShuffle(int inint)
{
reint = new int[inint];
for(int i = 0; i< inint; i++)
{
reint[i] = i + 1;
}
int tmpint = 0;
int ranint = 0;
for (int i = 0; i < inint; i++)
{
tmpint = reint[i];
ranint = UnityEngine.Random.Range(0, inint);
reint[i] = reint[ranint];
reint[ranint] = tmpint;
}
}
public int GetShulle()
{
int getint;
if (reint.Length > counter)
{
getint = reint[counter];
counter++;
}
else
{
getint = -1;
}
return getint;
}
0 件のコメント:
コメントを投稿