我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 正经梳理一下开发01

戏子无情 提交于 2019-12-03 03:02:32

我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 正经梳理一下开发01

原先一直认为我的世界开发起来很简单,不就是那么多方块拼接起来么。但是今年年初尝试了一下就觉得完全不是这么回事,因为当大量方块出现在屏幕上的时候就会出现效率的问题,即便你关闭光源,减少贴图的精度,或者设置什么摄像机裁剪的,也是不行的。

因为:

1 方块是动态生成的,生成的方法简单,因为有地形生成的函数PerlinNoise,有许多地方提供这样的算法的,我目前游戏里面用的就是Unity3D自身的Mathf.PerlinNoise来制作的,在Unity3D的文档里面搜索的话可以找到很好的介绍和例子,而且效率高……说了不相关的一些话,回到主题,方块是动态生成的,所以你设置摄像机的裁剪是基本没用的。摄像机的裁剪是要在已知地图上设置的,动态生成的话意味着一开始场景里面什么都没有;

2 关闭光源就会减少许多游戏机制,怪物可都是在无光源的地方生成的哦!!!

3 减少贴图的精度,这个么……本来已经是很简单的贴图了,16*16,你再怎么减?

所以通常的一些解决方法是没有办法解决的。后来网上查了资料,才找到了解决的关键秘法,就是合并方块。在我的世界游戏里面会有chunk的概念,就是一大块地区的方块合并成一个逻辑意义上的方块,然后渲染的时候把不必要的面省去,就可以得到一个非常简单的方块来处理和渲染。用了这个方法就可以生成超大型地图了,如下:

这样的地形看似复杂,已经很像我的世界了,而渲染的时候帧数却非常高,在editor里面就已经有76帧,通过帧数控制才往下控制到了60帧。

今天先写到这里,如果要看详细的开发日志,请到http://www.igamesoho.com去,那里有最详尽的开发记录。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!