美文网首页
ui元素网格重建检测工具

ui元素网格重建检测工具

作者: AngerCow | 来源:发表于2021-02-27 16:10 被阅读0次

    转自雨松大佬[UGUI研究院之找到具体某个引起了网格重建的UI元素(三十二)
    运行游戏,挂上脚本

    public class CheckBatchMesh : MonoBehaviour
    {
    
        IList<ICanvasElement> m_LayoutRebuildQueue;
        IList<ICanvasElement> m_GraphicRebuildQueue;
    
        private void Awake()
        {
            System.Type type = typeof(CanvasUpdateRegistry);
            FieldInfo field = type.GetField("m_LayoutRebuildQueue", BindingFlags.NonPublic | BindingFlags.Instance);
            m_LayoutRebuildQueue = (IList<ICanvasElement>)field.GetValue(CanvasUpdateRegistry.instance);
            field = type.GetField("m_GraphicRebuildQueue", BindingFlags.NonPublic | BindingFlags.Instance);
            m_GraphicRebuildQueue = (IList<ICanvasElement>)field.GetValue(CanvasUpdateRegistry.instance);
        }
    
        private void Update()
        {
            for (int j = 0; j < m_LayoutRebuildQueue.Count; j++)
            {
                var rebuild = m_LayoutRebuildQueue[j];
                if (ObjectValidForUpdate(rebuild))
                {
                    //Debug.LogErrorFormat("{0}引起网格重建", rebuild.transform.name,);
                }
            }
    
            for (int j = 0; j < m_GraphicRebuildQueue.Count; j++)
            {
                var element = m_GraphicRebuildQueue[j];
                if (ObjectValidForUpdate(element))
                {
                    Debug.LogErrorFormat("{0}引起{1}网格重建", element.transform.name, element.transform.GetComponent<Graphic>().canvas.name);
                }
            }
        }
        private bool ObjectValidForUpdate(ICanvasElement element)
        {
            var valid = element != null;
    
            var isUnityObject = element is Object;
            //Here we make use of the overloaded UnityEngine.Object == null, that checks if the native object is alive.
            if (isUnityObject)
                valid = (element as Object) != null;
    
            return valid;
        }
    }
    

    相关文章

      网友评论

          本文标题:ui元素网格重建检测工具

          本文链接:https://www.haomeiwen.com/subject/ztrifltx.html