场景搭建
使用了TopDown Engine的最小2D模板来进行构建第一个Scene场景,计划中总共有31层关卡,把每一个关卡当成一个房间,每个Scene场景中保存5个房间,一共7个Scene,最后一层当作最后一个Scene。
其实想让房间随机生成,使得更符合一个肉鸽游戏,不过看了下TopDown的随机生成场景,感觉不符合内心想法,就先设定场景房间为固定,房间元素随机。
搭建第一个Scene场景
复制一份TopDown Engine的最小2D场景,添加Timemap,先构建出一个5个房间的地板,再添加一个新的Timemap给当前房间围上。
为当前房间和地板添加上碰撞体,再为房间添加上门。
第一个简单的Scene就这样完成了。
当前的思路是先搭建基础关卡的范围和墙壁。关卡内容后续再进行一个完善。
然后再给每个房间创建一个摄像机,为摄像机设置范围为当前房间的大小,把基础人物挂载上加载器上,演示下效果。
遇见的问题:
在使用Cinemachine做摄像机切换的时候切换房间摄像机直接卡住了,我当时定位问题的时候我以为是房间碰撞器出现了问题。结果一直修改也找到问题。后面我在运行时查看摄像机,发现摄像机的Confiner变成了LevelManger,我就怀疑是不是因为它代码的问题,然后我去查看摄像机控制的代码,发现了有一个判断如下:
#if MM_CINEMACHINE
if ((_confiner != null) && ConfineCameraToLevelBounds && LevelManager.HasInstance)
{
_confiner.m_BoundingVolume = LevelManager.Instance.BoundsCollider;
}
#endif
如果这3个条件都符合的话,就将Confiner改为LevelManager的范围。
最后取消掉LevelManager中的Use Level Bounds解决这个问题。
暂无关于此日志的评论。