Я ищу, чтобы найти хороший способ выбора случайного числа между двумя диапазонами в определенной координате карты, которые всегда возвращают одно и то же число, основываясь на этой координате.
В контексте,У меня есть генератор карт, который использует перлин-шум для его построения, размещения воды, травы, камней и т. Д., Это прекрасно работает, но каждая плитка может иметь альтернативные текстуры, поэтому, например, плитка травы может иметь 5 альтернативных текстур, которые она может использовать.Я хочу иметь возможность генерировать один из них, совершенно случайно, но он должен быть согласованным при каждом воспроизведении и без использования перлин-шума, так как это обычно дает поток (несколько из одной текстуры, а затем несколько из следующей текстурыи т.д.)
Стоит отметить, что я не могу просто установить случайное начальное число для этого, поскольку эта часть мира может быть сгенерирована в любое время, а не в определенном порядке.
Я пыталсячто-то вроде следующего:
public static int PerlinNoiseCalcInt(float x, float y, float size, float power, int min, int max) {
int f = Mathf.RoundToInt(Mathf.PerlinNoise(x / size * power, y / size * power) * max + min);
return f < max ? f : max--;
}
Этот вид работает, но это, как вы, вероятно, ожидаете, дает кучу одной текстуры, а затем кучу другой, мне бы очень хотелось, чтобы она выглядела очень случайной,но каждый раз в том же положении на карте каждый раз.