Random Unity3d-如何创建OpenTTD中的世界生成器?

Random Unity3d-如何创建OpenTTD中的世界生成器?,random,unity3d,generator,Random,Unity3d,Generator,我正在Unity3d中尝试一些东西,但我偶然发现无法创建一个简单的世界生成器。基本上,我希望世界生成器创建一个类似于OpenTTD世界生成的世界(仅适用于地形和水,不适用于建筑物、森林或其他任何东西) 我遇到的问题是,我只能带着更多的东西朝着像雷舰一样的世界一代人的方向发展,而这正是我不想要的。我通常会以一些区块雷区结束,而不是像OpenTTD这样的美好世界 我想知道是否有人有世界一代的经验,并能为我指出正确的方向 不幸的是,我没有任何代码可以显示,因为我在许多失败的愤怒中删除了我的代码 如果我

我正在Unity3d中尝试一些东西,但我偶然发现无法创建一个简单的世界生成器。基本上,我希望世界生成器创建一个类似于OpenTTD世界生成的世界(仅适用于地形和水,不适用于建筑物、森林或其他任何东西)

我遇到的问题是,我只能带着更多的东西朝着像雷舰一样的世界一代人的方向发展,而这正是我不想要的。我通常会以一些区块雷区结束,而不是像OpenTTD这样的美好世界

我想知道是否有人有世界一代的经验,并能为我指出正确的方向

不幸的是,我没有任何代码可以显示,因为我在许多失败的愤怒中删除了我的代码


如果我把它贴错了地方,我很抱歉,但它似乎是唯一合乎逻辑的地方。

我使用LibNoise生成世界。是一个统一的人。我正在使用它,但没有梯度或任何东西,所以它从来没有切断,使“地形”。实际的C++ LIBoWISH有很多关于如何生成地形的教程,

我的体素速度测试:

    Perlin perlin = new Perlin((double)frequency, (double)lacunarity, (double)persistence, octaves, seed, QualityMode.High);
    RidgedMultifractal fractal = new RidgedMultifractal((double)frequency, (double)lacunarity, octaves, seed, QualityMode.High);

    ModuleBase noise = new Add(perlin, fractal);

    for (int x = 0; x < chunkSize; x++)
    {
        for (int y = 0; y < chunkSize; y++)
        {
            for (int z = 0; z < chunkSize; z++)
            {


                if (noise.GetValue(global) < .5) // or if you want it to look like terrain change to (chunkPos.y * chunkSize) + y <= (Noise.GetValue(global + 1) / 2) * height
                {
                    //add here
                }
            }
        }
    }
Perlin-Perlin=新的Perlin((双)频率,(双)缺陷,(双)持续性,八度音阶,种子,质量模式。高);
RidgedMultifractal分形=新的RidgedMultifractal((双)频率,(双)空隙率,倍频程,种子,质量模式。高);
ModuleBase noise=新添加(柏林,分形);
对于(int x=0;xif(noise.GetValue(global)<.5)//或者如果希望它看起来像地形,则更改为(chunkPos.y*chunkSize)+y谢谢你的建议。我发现了一些叫做柏林噪声的。据我所知,我正在查看unity3d中默认的LibNoise和perlin噪声。你知道使用LibNoise的任何示例吗?是的,它内置了柏林噪声,mathf.perlin noise,但你对它没有太多控制。对于体素速度测试,我将编辑我的回答添加我所做的。好的,谢谢,我很快就会尝试这个。我会让你知道我最终得到了什么。这会让它看起来像我的视频中的地形,所以如果你想让它看起来像一个地形,你需要做一个高度测试,我也会用这个更新答案。我想谢谢你。我现在可以生成一个简单的带有柏林噪声的地形网格。