在2D游戏中,经常会出现需要坐标更靠下的物体覆盖住坐标更靠上的物体,但是决定物体渲染顺序的是Z轴,Z轴的值越靠近摄像机,越优先渲染,当然也可以事实同步Z轴和Y轴的值,但是十分消耗性能,Unity中拥有便携的功能自定义渲染轴
using UnityEngine;
public class SetYSortAxis : MonoBehaviour
{
void Awake()
{
// 直接获取 Camera 组件
Camera cam = GetComponent<Camera>();
// 设置为自定义轴排序
cam.transparencySortMode = TransparencySortMode.CustomAxis;
// 设置 Y 轴为排序轴(Y 越高越先渲染,显示在后面)
cam.transparencySortAxis = new Vector3(0, 1, 0.1f);
// 如果要 Y 越高越后渲染(显示在前面),改为 new Vector3(0, -1, 0)
}
}
这种写法就是Y轴越靠下越先渲染,在Y轴相同时判断Z轴,如果希望右边盖住左边或者左边盖住右边的,可以调节cam.transparencySortAxis中X轴的值