Unity 3d地形生成

时间:2018-11-17 15:00:05

标签: c# unity3d procedural-generation

我正在制作3D游戏,其中我必须进行一些地形生成以具有无限和随机的水平。 地形必须上下颠簸,像这样:

https://imgur.com/a/prTuRl0

我用perlin噪声生成了一个地形,队列中有多个平面,并随着玩家的前进进行更新(我具有最后一个平面的Z位置,所以当我更新时,当我从队列中窥视第一个平面时,行,通过mathf.PerlinNoise(0,zPosition))将其出队并再次以新的顶点入队 我第一个参数为0的原因是,使得x轴上的平面是均匀的

我希望有一个类似于沙丘的游戏玩法,但在3d中,玩家控制一个球,在接地的情况下单击可以加快速度,在空中的情况下单击可以降低速度,并且他可以平稳前进来获得得分和条纹穿过山坡,或者如果他撞上山坡就死了

问题:

https://imgur.com/a/sdZp1qQ

佩林噪声并非总是像我需要的那样上下波动,有时它的中间有那些曲线使球跳动并且产生了怪异的不希望的运动……感谢您对此问题的任何帮助。

1 个答案:

答案 0 :(得分:0)

我通过使用正态分布函数生成波浪来解决此问题,通过弄乱参数,我可以为波浪添加宽度或高度 每个“波”使用5个平面(每个波是5个平面的游戏对象数组),只需遍历x轴的顶点,将其所有高度更改为函数中计算的相同值,将x递增,然后再次进行< / p>