using UnityEngine; using System.Collections; using System.Collections.Generic;
//自定义比较器,通过 Transform.position.y 给 List 排序 public class StageObjectComparer : IComparerZSortObject { public int Compare(ZSortObject a, ZSortObject b) { if (a.transform.position.y - b.transform.position.y 0f) { return 1; } else if (a.transform.position.y - b.transform.position.y 0f) { return -1; } else { //曾经被这里坑成狗。。。 return 0; } } }
//主类 ZSortObject , 场景内所有挂载了该脚本的2D物体 都将按照y轴位置 自动调整遮挡关系,遮挡关系通过z轴位置来调整 public class ZSortObject : MonoBehaviour {
public static ListZSortObject StageObjectList = new ListZSortObject(); //存放所有需要排序的物体,注意是静态的 public float StageZGap = 0.01f; //两个相邻物体之间的z轴距离 public float StageZMin = 0f; //最靠前的物体的z轴位置 public float SortRant = 0.1f; //每隔多久排序一次