예제 #1
0
 public virtual void SetLayoutDirty()
 {
     if (this.IsActive())
     {
         LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
         if (this.m_OnDirtyLayoutCallback != null)
         {
             this.m_OnDirtyLayoutCallback();
         }
     }
 }
예제 #2
0
 /// <summary>
 ///
 /// <para>
 /// See MonoBehaviour.OnDisable.
 /// </para>
 ///
 /// </summary>
 protected override void OnDisable()
 {
     GraphicRebuildTracker.UnTrackGraphic(this);
     GraphicRegistry.UnregisterGraphicForCanvas(this.canvas, this);
     CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild((ICanvasElement)this);
     if ((UnityEngine.Object) this.canvasRenderer != (UnityEngine.Object)null)
     {
         this.canvasRenderer.Clear();
     }
     LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
     base.OnDisable();
 }
예제 #3
0
        protected override void OnDisable()
        {
            GraphicRegistry.UnregisterGraphicForCanvas(canvas, this);
            CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this);
            if (canvasRenderer != null)
            {
                canvasRenderer.Clear();
            }

            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
            base.OnDisable();
        }
예제 #4
0
        public virtual void SetLayoutDirty()
        {
            if (!IsActive())
            {
                return;
            }

            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
            if (m_OnDirtyLayoutCallback != null)
            {
                m_OnDirtyLayoutCallback();
            }
        }
예제 #5
0
 protected void SetDirty()
 {
     if (IsActive())
     {
         if (!CanvasUpdateRegistry.IsRebuildingLayout())
         {
             LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
         }
         else
         {
             StartCoroutine(DelayedSetDirty(rectTransform));
         }
     }
 }
        protected override void OnDisable()
        {
            m_Tracker.Clear();
            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
            base.OnDisable();

            // Unhook the toggle change event
            if (this.m_Toggle != null)
            {
                this.m_Toggle.onValueChanged.RemoveListener(OnToggleStateChange);
            }

            // Expand the view
            this.OnToggleStateChange(false);
        }
예제 #7
0
        protected override void OnDisable()
        {
            CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this);

            //if (m_HorizontalScrollbar)
            //    m_HorizontalScrollbar.onValueChanged.RemoveListener(SetHorizontalNormalizedPosition);
            //if (m_VerticalScrollbar)
            //    m_VerticalScrollbar.onValueChanged.RemoveListener(SetVerticalNormalizedPosition);

            m_HasRebuiltLayout = false;
            m_Tracker.Clear();
            m_Velocity = Vector2.zero;
            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
            base.OnDisable();
        }
예제 #8
0
        public override void SetLayoutDirty()
        {
#if UNITY_EDITOR
            if (!UnityEditor.EditorApplication.isPlaying)
            {
                return;
            }
#endif
            if (!IsActive())
            {
                return;
            }

            base.SetLayoutDirty();

            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
        }
예제 #9
0
        /// <summary>
        /// Clear references.
        /// </summary>
        protected override void OnDisable()
        {
#if UNITY_EDITOR
            GraphicRebuildTracker.UnTrackGraphic(this);
#endif
            GraphicRegistry.UnregisterGraphicForCanvas(canvas, this);
            CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this);

            if (canvasRenderer != null)
            {
                canvasRenderer.Clear();
            }

            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
            SendGraphicEnabledDisabled();
            base.OnDisable();
        }
예제 #10
0
 /// <summary>
 ///   <para>See MonoBehaviour.OnDisable.</para>
 /// </summary>
 protected override void OnDisable()
 {
     CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild((ICanvasElement)this);
     if ((bool)((UnityEngine.Object) this.m_HorizontalScrollbar))
     {
         this.m_HorizontalScrollbar.onValueChanged.RemoveListener(new UnityAction <float>(this.SetHorizontalNormalizedPosition));
     }
     if ((bool)((UnityEngine.Object) this.m_VerticalScrollbar))
     {
         this.m_VerticalScrollbar.onValueChanged.RemoveListener(new UnityAction <float>(this.SetVerticalNormalizedPosition));
     }
     this.m_HasRebuiltLayout = false;
     this.m_Tracker.Clear();
     this.m_Velocity = Vector2.zero;
     LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
     base.OnDisable();
 }
예제 #11
0
 protected override void OnDisable()
 {
     if (Rust.Application.isQuitting)
     {
         return;
     }
     CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this);
     if (this.m_HorizontalScrollbar)
     {
         this.m_HorizontalScrollbar.onValueChanged.RemoveListener(new UnityAction <float>(this.SetHorizontalNormalizedPosition));
     }
     if (this.m_VerticalScrollbar)
     {
         this.m_VerticalScrollbar.onValueChanged.RemoveListener(new UnityAction <float>(this.SetVerticalNormalizedPosition));
     }
     this.m_HasRebuiltLayout = false;
     this.m_Tracker.Clear();
     LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
     base.OnDisable();
 }
예제 #12
0
        protected virtual void Update()
        {
            if (Application.isPlaying)
            {
                return;
            }

            int count = transform.childCount;

            if (count > m_Capacity)
            {
                if (count > m_Capacity * 2)
                {
                    m_Capacity = count;
                }
                else
                {
                    m_Capacity *= 2;
                }

                m_Sizes = new Vector2[m_Capacity];
            }

            // If children size change in editor, update layout (case 945680 - Child GameObjects in a Horizontal/Vertical Layout Group don't display their correct position in the Editor)
            bool dirty = false;

            for (int i = 0; i < count; i++)
            {
                RectTransform t = transform.GetChild(i) as RectTransform;
                if (t != null && t.sizeDelta != m_Sizes[i])
                {
                    dirty      = true;
                    m_Sizes[i] = t.sizeDelta;
                }
            }

            if (dirty)
            {
                LayoutRebuilder.MarkLayoutForRebuild(transform as RectTransform);
            }
        }
예제 #13
0
 protected virtual void OnDisable()
 {
     if (Application.isQuitting != null)
     {
         return;
     }
     CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild((ICanvasElement)this);
     if (Object.op_Implicit((Object)this.m_HorizontalScrollbar))
     {
         // ISSUE: method pointer
         ((UnityEvent <float>) this.m_HorizontalScrollbar.get_onValueChanged()).RemoveListener(new UnityAction <float>((object)this, __methodptr(SetHorizontalNormalizedPosition)));
     }
     if (Object.op_Implicit((Object)this.m_VerticalScrollbar))
     {
         // ISSUE: method pointer
         ((UnityEvent <float>) this.m_VerticalScrollbar.get_onValueChanged()).RemoveListener(new UnityAction <float>((object)this, __methodptr(SetVerticalNormalizedPosition)));
     }
     this.m_HasRebuiltLayout = false;
     ((DrivenRectTransformTracker) ref this.m_Tracker).Clear();
     LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
     base.OnDisable();
 }
 protected override void OnBeforeTransformParentChanged()
 {
     GraphicRegistry.UnregisterGraphicForCanvas(canvas, this);
     LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
 }
 protected override void OnDisable()
 {
     m_Tracker.Clear();
     LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
     base.OnDisable();
 }
예제 #16
0
        IEnumerator DelayedSetDirty(RectTransform rectTransform)
        {
            yield return(null);

            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
        }
 /// <summary>
 /// Mark the LayoutElement as dirty.
 /// </summary>
 /// <remarks>
 /// This will make the auto layout system process this element on the next layout pass. This method should be called by the LayoutElement whenever a change is made that potentially affects the layout.
 /// </remarks>
 protected void SetDirty()
 {
     if (!IsActive())
         return;
     LayoutRebuilder.MarkLayoutForRebuild(transform as RectTransform);
 }
예제 #18
0
 void OnDisable()
 {
     this.m_Tracker.Clear();
     LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
 }
예제 #19
0
 private static void ReapplyDrivenProperties(RectTransform driven)
 {
     LayoutRebuilder.MarkLayoutForRebuild(driven);
 }
예제 #20
0
 protected override void OnValidate()
 {
     base.OnValidate();
     this.spacing = this.m_spacing;
     LayoutRebuilder.MarkLayoutForRebuild((RectTransform)this.transform);
 }