这个项目最初是在我为自己想做的游戏开发系统时开始的,后来我决定把它变成一个Unity资源包。如今我已经为Unity 6开发了6个多月。
大部分时间都花在生成世界和生成对象上,确保没有明显的性能下降或卡顿。我还特别花了很多时间在草的处理上。我希望能够创建非常密集、自然且性能良好的草地。
该系统不使用Unity地形。世界通过网格变形生成,网格块使用程序化材质,该材质将两个纹理层(带法线贴图)渲染到不同高度,并带有过渡效果。每个层可以包含多个纹理,并相互融合过渡。此外,斜坡还有斜坡纹理效果。没有地形绘制或基于笔刷的工作流程。您可以通过易于使用的编辑器工具配置生成、材质和生成规则,添加自己的资源或修改现有资源,世界在运行时动态生成。
由于我编写了所有网格生成算法,我能够对对象生成进行大量性能优化,因此速度非常快。我还制作了雪和雨效果,这些效果会影响所有对象和地形本身,当然您也可以将这些效果应用到自定义对象上。我制作了一个用于URP的天空着色器,用于云效果(适用于天气)和昼夜循环。
该项目目前包括:
- 运行时程序化地形生成与世界流式加载
- 程序化世界着色器
- 基于生物群系的环境
- 连接不同生物群系的道路(Beta版)
- 密集植被与对象生成
- 包含月亮、太阳和云层的天空着色器
- 水面
- 与整个世界集成的雨、雪及其他天气系统
- 昼夜循环
- 季节与时间
- 多存档位的保存/加载系统
- 多人游戏集成工作流
- 用于配置生成系统、创建或修改资源以在包系统中使用的编辑器工具
- 用于集成自定义逻辑的辅助函数,该资源包非常灵活
评论 (0)