使用perlin噪声场,获取对象产生的随机位置

时间:2016-06-23 04:32:19

标签: c# unity3d perlin-noise

我正在尝试创建一个使用perlin噪声字段生成随机位置的系统,然后将这些位置保存或保存为生成的列表。然后使用该列表,游戏将使用这些位置在该级别内的对象中生成。我认为我可能走在正确的轨道上,但我可能会在错误的地方找到一些东西。

以下链接指向我认为相关的所有内容的图像:enter image description here

蓝点应该是添加到列表中的已保存位置。但我只获得了一个位置5次,这是正确的位置数,但它们都是同一个位置。

// --- Random Generation of Objects --- //
Color[] colourMap = new Color[mapWidth * mapHeight];

for(int y = 0; y < mapHeight; y++) {
    for(int x = 0; x < mapWidth; x++) {

        float currentHeight = noiseMap[x, y];
        for(int i = 0; i < regions.Length; i++) {

            // --- Random Gen of Asteroids --- //
            if(currentHeight <= regions[i].height) {
                colourMap[y * mapWidth + x] = regions[i].colour;
                Vector3 ping = new Vector3(x, 0, y);
                asteroids.Add(ping);
                Debug.Log(asteroids[i]);
                break;
            }

        }

    }

}

无论如何,感谢您的帮助和阅读,请告诉我您是否需要更多信息。

0 个答案:

没有答案