为什么需要叠层:在瓦片地图中希望草出现在人物后面,如果直接进行绘制会看到草会挡住人物,那么就需要使用叠层将草调整到人物后方(所以叠层在unity 2D游戏中很重要)
首先选中人物,在inspector窗口找到Spriter render 组件(作用把图片渲染到画面中,渲染什么图片显示什么),找到sorting layer,默认只有一个default layer,可以创建多个layer来进行叠层的排序,在同一个叠层中可以调整order即顺序。
举例:现在人物处于deafult图层的第0级,Tilemap也是deafult 0级(且地图后创建),同样数值在运行游戏时是随机进行遮挡,而且后面创建的物体会遮挡之前创建的物体,则草会遮挡人物。假设将地图设置为deafult的order为-1,现在人物就不会被草遮挡住。
每次设置数值会比较累,简单的方法就是在添加不同的sorting layer图层,把不同的物体或地图指定到固定的图层上。点击add sorting layer,在新的页面点击+增添新的图层。这里以设置三个为例
添加完后返回到角色物体insprctor界面,将人物放置在middle一层,此实即使order相同人物也会出现在草的前面。在unity layer图层中,下方的物体会遮挡上面的物体,所以Front遮挡Middle遮挡Back遮挡default。
若编辑错了再次点击add sorting layer进入页面,右键按住前面的两条杠来进行顺序的拖拽调整顺序。
关于地图想要有更详尽的设置,比如将将地图在middle层上面的草地在后面,先将草地从场景中擦掉,点击Tile Palette,使用橡皮擦除草地(快捷方法,点击矩形,按住shift连选多个方块,松开则擦除)
如何将草地分层:在Grid再次创建Tilemap重命名为Back,原来的tilemap重命名为Platform。根据图层需要设置多个Back,Front。将Back123的layer图层全部选择为Back,Front123layer图层全部选择为为Front,通过order数字来区分不同Back以及Front顺序,数字大的在前面,小的在后面。
将草地绘制在Back3(距离地面最近),在Scen右下角Tilemap Focus on选择Tilemap(根据tileplattes选择当前激活绘制的地图来在场景中显示出来,这样就知道绘制的是哪一层),比如选择为platform,在Back3绘制完草地最后在Tilemap Focus on选择None.