好的网站推荐下 感谢,网件路由器登录密码,阿里云1M做网站,网站模板带有sql后台下载如果读者是从Unity 4.x时代过来的#xff0c;可能都用过NGUI这个插件#xff08;后来也是土匪成了正规军#xff09;#xff0c;NGUI一大特点是可以靠transform位移的Z值进行遮挡排序#xff0c;然而这个事情在UGUI成了难题#xff08;Sorting Layer、Inspector顺序等因素…如果读者是从Unity 4.x时代过来的可能都用过NGUI这个插件后来也是土匪成了正规军NGUI一大特点是可以靠transform位移的Z值进行遮挡排序然而这个事情在UGUI成了难题Sorting Layer、Inspector顺序等因素综合作为遮挡前置条件。 如图所示现在我们有三个Image白红蓝。在Inspector中的顺序如下 如果我们尝试让白色遮挡红色按照NGUI的做法我们把红色的Z值改为50然而这种做法在UGUI直接现场寄。 其中一种解决办法是改一下Inspector顺序。 至于如果想动态地调整顺序你可以参考如下代码
// UIPosZSorter
// Originally written by AStar
// Modified and commented by Shepherd Zhu
// Sort the RectTransform by Z Pos.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class UIPosZSorter : MonoBehaviour
{private ListTransform m_Transforms; // 存储子物体的Transform组件private void Awake(){m_Transforms new ListTransform(); // 初始化m_Transforms列表}private void Update(){// 清空m_Transforms列表m_Transforms.Clear();// 遍历所有子物体将其Transform组件添加到m_Transforms列表中for (int i 0; i transform.childCount; i){m_Transforms.Add(transform.GetChild(i));}// 根据子物体的localPosition.z属性进行排序m_Transforms.Sort((a, b) b.localPosition.z.CompareTo(a.localPosition.z))// 根据排序后的顺序设置子物体的SiblingIndexfor (int i 0; i m_Transforms.Count; i){m_Transforms[i].SetSiblingIndex(i);}}
}效果如图