public static void RegisterRebuildListener(ICanvasRebuildListener p_listener)
 {
     if (p_listener != null && !p_listener.IsDestroyed() && p_listener.transform != null &&
         !CanvasRebuildRegistry.instance.m_listenerQueue.Contains(p_listener))
     {
         CanvasRebuildRegistry.instance.m_listenerQueue.Add(p_listener);
     }
 }
 public static void UnregisterRebuildListener(ICanvasRebuildListener p_listener)
 {
     if (p_listener != null && !p_listener.IsDestroyed() && p_listener.transform != null)
     {
         var v_index = CanvasRebuildRegistry.instance.m_listenerQueue.IndexOf(p_listener);
         if (v_index >= 0)
         {
             CanvasRebuildRegistry.instance.m_listenerQueue.RemoveAt(v_index);
         }
     }
 }