本文转自Unity Connect
我们将介绍一种在Unity中生成随机关卡的简单的方法。
项目下载
本文中的项目使用了Unity 2019.1.0f2,Cinemachine 2.3.4和TextMeshPro 2.0.1进行制作。
下载项目
本文将讲解项目所使用方法的逻辑,你可以查看相应代码进行理解。
项目下载:https://github.com/mihailt/LevelGeneration
试玩体验
你可以访问下面的链接,体验运行结果。https://mihailt.itch.io/random-levels-with-unity-3d
开发过程
为了生成地牢关卡,在项目中,我们将使用Random Walk随机游走算法的变体,即Drunkard Walk算法。
在Drunkard Walk算法中,行走对象放置在网格中,然后以随机方式朝预定方向移动。我们记录行走对象到达的所有位置,在这些位置上渲染地板瓦片。
首先,我们要定义一个网格,标记所有瓦片为空白状态,然后添加行走对象并查看发生的事情。
这样会提供有趣的结果,例如:如果设为在30x30的网格上行走100步,会得到以下结果。
我们可以通过加入一些变化来改进结果,我们从一个行走对象开始,然后在每一步加入概率来生成或销毁行走对象。
例如:在相同的30x30网格上,使用最多10个行走对象会得到以下结果。