大家好,我是第一次发帖的长期浏览者。最近,我完成了Unity中一个横向RPG的程序化地图生成系统,想和大家分享一下我在这个过程中学习到的经验,以便于其他人在处理类似问题时能够节省一些时间。
核心方法使用BSP树将一个大矩形分成多个小区域,然后在每个区域中放置房间并用走廊连接它们。完成布局后,第二次遍历散布道具,如桶、炬和箱子,根据房间类型标签。
我遇到的几个问题可能会节省你一些时间。首先,确保你早早地并且一致地种植随机数生成器,以便生成可重复的关卡。另外,实时烘焙导航网格比我预期的要慢得多,所以我只烘焙了靠近玩家的区域。最后,道具放置也需要碰撞检测,以免出现道具与墙壁相互嵌入的情况。
整个系统在一个比较大的地图上可以在短短一秒钟内运行,我对这个结果非常满意。
有人也尝试过使用BSP树的方法吗?或者你们更喜欢其他方法,如波函数塌陷或简单的房间列表乱序?我很好奇各位大佬在不同类型的游戏中哪些方法最有效。
评论 (0)