using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class noise
{
public static float[,] GenerateNoiseMap(int mapWidth, int mapHeight, float scale)
{
float[,] noiseMap = new float[mapWidth, mapHeight];
if (scale <= 0)
{
scale = 0.0001f;
}
for(int y = 0; y<mapHeight; y++)
{
for (int x = 0; y < mapWidth; x++)
{
float sampleX = x/(mapWidth * scale);
float sampleY = y/(mapHeight * scale);
float perlinValue = Mathf.PerlinNoise(sampleX, sampleY);
noiseMap[x, y] = perlinValue;
Debug.Log(noiseMap.GetLength(0));
Debug.Log(noiseMap.GetLength(1));
}
}
return noiseMap;
}
}
Выше приведен код, выдающий мне ошибку:
IndexOutOfRangeException: индекс массива выходит за пределы диапазона.
noise.GenerateNoiseMap (Int32 mapWidth, Int32 mapHeight, По одной шкале) (на
Активы / Сценарии / MapGeneration / noise.cs: 24)
Я не совсем знаком с тем, как массивы работают в C # (или вообще)но мои учителя говорят, что наиболее распространенная проблема с массивами, которые приводят к ошибке IndexOutOfRange, состоит в том, что я начинаю с 1, а не с индекса 0. Я пытался это исправить, но, похоже, это не проблема в этом разделекод.
Я пытаюсь сгенерировать карту шума Перлина для своей пользовательской игры.
Что выдает ошибку?
Заранее спасибо.