36 lines
1 KiB
C#
Executable file
36 lines
1 KiB
C#
Executable file
using UnityEngine;
|
|
|
|
namespace Core.Extensions
|
|
{
|
|
public partial class Helper
|
|
{
|
|
static int[] randomIntTable;
|
|
static int randomIntIndex;
|
|
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
|
|
static void FillTable()
|
|
{
|
|
randomIntIndex = 0;
|
|
int length = 256;
|
|
randomIntTable = new int[length];
|
|
int seed = 3378;
|
|
System.Random r = new System.Random(seed);
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
randomIntTable[i] = r.Next(0, length);
|
|
}
|
|
}
|
|
public static int SeededRandomInt256 => GetRandomInt();
|
|
static int GetRandomInt()
|
|
{
|
|
if (randomIntTable == null)
|
|
{
|
|
FillTable();
|
|
}
|
|
if (randomIntIndex >= randomIntTable.Length)
|
|
{
|
|
randomIntIndex = 0;
|
|
}
|
|
return randomIntTable[randomIntIndex++];
|
|
}
|
|
}
|
|
}
|