protected override void OnCanvasHierarchyChanged() { // Use m_Cavas so we dont auto call CacheCanvas Canvas currentCanvas = m_Canvas; // Clear the cached canvas. Will be fetched below if active. m_Canvas = null; if (!IsActive()) { return; } CacheCanvas(); if (currentCanvas != m_Canvas) { BrandoUIGraphicRegistry.UnregisterGraphicForCanvas(currentCanvas, this); // Only register if we are active and enabled as OnCanvasHierarchyChanged can get called // during object destruction and we dont want to register ourself and then become null. if (IsActive()) { } BrandoUIGraphicRegistry.RegisterGraphicForCanvas(canvas, this); } }
/// <summary> /// Clear references. /// </summary> protected override void OnDisable() { #if UNITY_EDITOR BrandoGraphicRebuildTracker.UnTrackGraphic(this); #endif //从 Canvas 中注销 BrandoUIGraphicRegistry.UnregisterGraphicForCanvas(canvas, this); BrandoCanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this); if (canvasRenderer != null) { canvasRenderer.Clear(); } LayoutRebuilder.MarkLayoutForRebuild(rectTransform); base.OnDisable(); }
/// <summary> /// 父物体改变前 /// </summary> protected override void OnBeforeTransformParentChanged() { BrandoUIGraphicRegistry.UnregisterGraphicForCanvas(canvas, this); LayoutRebuilder.MarkLayoutForRebuild(rectTransform); }