一年前曾经碰到过已无限世界为题材的游戏开发比赛,虽然对比赛没有兴趣,但是对这个题材倒是有点想法。如何通过unity3d实现无缝的循环世界呢。

有一种想法是动态生成,一块场景一块场景进行动态加载。(做过2D背景地图加载的可能理解,不展开)

如果是单场景,有没有简单的办法呢?思来想去,总算找到一种办法,4个相机图像叠加法

Unity无缝循环世界实现-LMLPHP

人物置于一个相机上,移动时,相机也移动,旋转时,相机也旋转。

当人物超出地形边缘的时候,则从另外一个边缘出现,同时设置到另外一边的相机上。

当相机超出2个地形边缘的时候,则从另外一边出现,这样就可以形成无缝的效果

注意的地方是,每次人物位置变更的时候,所有相机的depth值都需要重新按照距离远近重新设置

开源工程地址:http://git.oschina.net/CodeGize/Endless

05-11 03:09