其实平面当中实现伪透视的思路极其简单,甚至你可以用funcode自己手写一个;
那么我们该怎么来弄呢?
思路是这样的:我们计算每个Sprite在Y轴上坐标,按照Y轴的大小来决定在同一图层的精灵Render优先级;
在unity我们可以如此实现:
先Edit->Project Settings->Graphics:
Transparency Sort Mod是管理同一图层的Render模式的,我们将其改为自选轴,这个模式下精灵的中心点坐标投影到自选轴,然后以其投影的值来作为Render的依据;
然后Transparency Sort Axis是自选轴的正方向;
Render模式我们改好了,那么接下来就是设置精灵的中心点了;
我们可以找到对应精灵的资源:
更改Pviot为Bottom,这个是Uinty设置好的几个常用的点,但如果你想要自己定义中心点,那么你可以既然Sprite Editor:
中心那个小蓝圈就是精灵的在中心点,我们可以将其拖拽到我们想要设置的地方;
注意:我们要将设置好的精灵资源在Hierarchy窗口中实例化出的对象中的Sprite Sort Point设置为Pviot才行;
另外如果我们用了Tile map,那么我们可能需要将Tile map对象的z坐标设置在后面【虽然unity在2d编辑时看不见z轴,但是不代表没有z轴,我们可以进入3d编辑模式,可以发现,unity本质上是用3d实现2d的编辑】,这样就不会让Tile map挡住其他精灵了,而且这种方式也可以进入3d编辑模式时对整个地图的层级可以直观地看出来;