问题背景:
3D空间
两个2D物体A与B【每个物体都有若干精灵图组成(分成若干精灵图是用于做动画)】
A与B同Layer 、同Sorting Layer
同为保障每个物体显示正确,内部精灵图设置了不同的Order in Layer
待解决问题:
无法实现A、B呈现正常的遮挡关系。
即 A与B都在相机视野内且有重叠时,A靠近相机 A可以完全挡住B所有精灵图;B近 B可以完全挡住A所有精灵图。
求指导
使用3D空间:首先,确保您的2D物体A和B在3D空间中正确设置了位置、旋转和缩放。这可以通过将它们的Z轴坐标不同设置为不同的值来实现。确保它们不仅在同一Layer和Sorting Layer中,而且在3D空间中也有一定的距离。
调整相机设置:确保相机的投影方式设置为正交(Orthographic),这样它将不会产生透视效果,而且物体的大小和远近关系将会更明显。您可以调整相机的视野大小(Orthographic Size)来适应您的场景需求。
设置Sorting Layer和Order in Layer:确保每个物体的Sprite Renderer组件中的Sorting Layer和Order in Layer设置正确。Order in Layer应该根据物体的Z轴坐标来设置,以确保它们按照深度正确排序。
调整物体的Z轴坐标:根据您的需求,手动调整A和B物体的Z轴坐标,以确保它们在3D空间中的深度关系正确。例如,如果A需要挡住B,那么将A的Z轴坐标设置为比B更大的值。
检查Collider:如果您希望物体之间进行物理交互并且有碰撞体(Collider),请确保Collider也正确地与物体的Z轴坐标对齐。
调整相机的深度排序设置:在相机的设置中,确保启用了深度排序(Depth Sorting)或者2D相机的设置,以确保相机按照物体的深度正确渲染物体。您可能需要调整相机的一些参数来满足您的需求。
渲染顺序问题:如果您仍然遇到问题,可能需要考虑自定义脚本来控制渲染顺序。通过脚本,您可以动态地设置物体的Order in Layer,以确保它们按照深度关系正确排序。