这个项目最初是在我为自己想做的游戏开发系统时开始的,后来我决定把它变成一个Unity资源包。如今我已经为Unity 6开发了6个多月。

大部分时间都花在生成世界和生成对象上,确保没有明显的性能下降或卡顿。我还特别花了很多时间在草的处理上。我希望能够创建非常密集、自然且性能良好的草地。

该系统不使用Unity地形。世界通过网格变形生成,网格块使用程序化材质,该材质将两个纹理层(带法线贴图)渲染到不同高度,并带有过渡效果。每个层可以包含多个纹理,并相互融合过渡。此外,斜坡还有斜坡纹理效果。没有地形绘制或基于笔刷的工作流程。您可以通过易于使用的编辑器工具配置生成、材质和生成规则,添加自己的资源或修改现有资源,世界在运行时动态生成。

由于我编写了所有网格生成算法,我能够对对象生成进行大量性能优化,因此速度非常快。我还制作了雪和雨效果,这些效果会影响所有对象和地形本身,当然您也可以将这些效果应用到自定义对象上。我制作了一个用于URP的天空着色器,用于云效果(适用于天气)和昼夜循环。

该项目目前包括:

  1. 运行时程序化地形生成与世界流式加载
  2. 程序化世界着色器
  3. 基于生物群系的环境
  4. 连接不同生物群系的道路(Beta版)
  5. 密集植被与对象生成
  6. 包含月亮、太阳和云层的天空着色器
  7. 水面
  8. 与整个世界集成的雨、雪及其他天气系统
  9. 昼夜循环
  10. 季节与时间
  11. 多存档位的保存/加载系统
  12. 多人游戏集成工作流
  13. 用于配置生成系统、创建或修改资源以在包系统中使用的编辑器工具
  14. 用于集成自定义逻辑的辅助函数,该资源包非常灵活

YouTube