protected override void OnEnable() { base.OnEnable(); if (m_HorizontalScrollbar) { m_HorizontalScrollbar.onValueChanged.AddListener(SetHorizontalNormalizedPosition); } if (m_VerticalScrollbar) { m_VerticalScrollbar.onValueChanged.AddListener(SetVerticalNormalizedPosition); } CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); }
public override void SetVerticesDirty() { if (m_verticesAlreadyDirty || this == null || !this.IsActive() || CanvasUpdateRegistry.IsRebuildingGraphics()) { return; } m_verticesAlreadyDirty = true; CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild((ICanvasElement)this); if (m_OnDirtyVertsCallback != null) { m_OnDirtyVertsCallback(); } }
/// <summary> /// Creates a new list item to be positioned in the list. /// </summary> private void GenerateListItem(int index, float position, bool topItem) { if (itemRendererFactory == null) { Debug.LogError("Item Renderer Factory is not set!"); return; } int itemType = onGetItemType(index); ListItemInfo listItemInfo = GetPooledObj(itemType); // Get the list items object and set up some parameters listItemInfo.index = index; IListItemView view = listItemInfo.view; if (listItemInfo.obj == null) { listItemInfo.obj = itemRendererFactory(index, content); Assert.IsNotNull(listItemInfo.obj); view = listItemInfo.obj.GetComponent <IListItemView>(); view.OnSelected += OnSelectedItemBroadcast; } Assert.IsNotNull(view); Assert.IsNotNull(dataProvider); Assert.IsTrue(index >= 0 && index < dataProvider.Count, "DataProvider index is out of range!"); view.isSelected = (index == _isSelectedIndex); view.viewData = dataProvider[index]; listItemInfo.view = view; listItemInfo.obj.SetActive(true); listItemInfo.obj.transform.SetParent(content, false); SetupRectTransform(listItemInfo.obj.transform as RectTransform); visibleObjs.Add(listItemInfo); if (!CanvasUpdateRegistry.IsRebuildingLayout()) { Canvas.ForceUpdateCanvases(); } PositionListItem(listItemInfo, position, topItem); UpdateListItems(); }
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; base.OnDisable(); }
protected void SetDirty(RectTransform rectTransform) { if (!IsActive()) { return; } if (!CanvasUpdateRegistry.IsRebuildingLayout()) { LayoutRebuilder.MarkLayoutForRebuild(rectTransform); } else { StartCoroutine(DelayedSetDirty(rectTransform)); } }
protected override void OnRectTransformDimensionsChange() { Debug.Log("OnRectTransformDimensionsChange"); if (gameObject.activeInHierarchy) { if (CanvasUpdateRegistry.IsRebuildingLayout()) { SetVerticesDirty(); } else { SetVerticesDirty(); SetLayoutDirty(); } } }
protected override void OnValidate() { base.OnValidate(); if (IsActive()) { UpdateVisuals(); } var prefabType = UnityEditor.PrefabUtility.GetPrefabType(this); if (prefabType != UnityEditor.PrefabType.Prefab && !Application.isPlaying) { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); } }
private void TextureRebuildCallback(Font targetFont) { Debug.LogWarningFormat("call texture rebulid callback {0}", font.name); if (font == targetFont) { if (CanvasUpdateRegistry.IsRebuildingGraphics() || CanvasUpdateRegistry.IsRebuildingLayout()) { UpdateGeometry(); } else { SetAllDirty(); } } }
protected override void OnValidate() { base.OnValidate(); Set(m_IsOn, false); PlayEffect(); if ((PrefabUtility.GetPrefabType(this) != PrefabType.Prefab) && !Application.isPlaying) { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); } if (animationDuration < 0) { animationDuration = 0; } }
public void SetDirty() { if (!IsActive()) { return; } if (CanvasUpdateRegistry.IsRebuildingLayout()) { StartCoroutine(DelayedSetDirty(rectTransform)); } else { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); LayoutRebuilder.MarkLayoutForRebuild(rectTransform); } }
protected void SetDirty() { if (!IsActive() || m_awaitingRebuild) { return; } if (!CanvasUpdateRegistry.IsRebuildingLayout()) { LayoutRebuilder.MarkLayoutForRebuild(transform as RectTransform); } else { m_awaitingRebuild = true; StartCoroutine(DelayedSetDirty(transform as RectTransform)); } }
protected virtual void MarkLayoutForRebuild() { if (IsDestroyed() || !IsActive()) { return; } if (!CanvasUpdateRegistry.IsRebuildingLayout()) { CancelInvoke("MarkLayoutForRebuild"); LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform); } else if (!IsInvoking("MarkLayoutForRebuild")) { Invoke("MarkLayoutForRebuild", 0); } }
public bool AddToRebuild(IUILayout layout) { int hashcode = layout.GetHashCode(); if (!m_MapLayouts.Contains(hashcode)) { m_ListLayouts.Add(layout); m_MapLayouts.Add(hashcode); //for register ui canvas rebuild system CanvasUpdateRegistry.TryRegisterCanvasElementForLayoutRebuild(this); return(true); } else { return(false); } }
/// <summary> /// /// </summary> public override void SetMaterialDirty() { //Debug.Log("SetMaterialDirty()"); if (this == null || !this.IsActive() || CanvasUpdateRegistry.IsRebuildingGraphics()) { return; } m_isMaterialDirty = true; CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild((ICanvasElement)this); if (m_OnDirtyMaterialCallback != null) { m_OnDirtyMaterialCallback(); } }
/// <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(); }
public static int IsRebuildingGraphics_s(IntPtr l) { int result; try { bool b = CanvasUpdateRegistry.IsRebuildingGraphics(); LuaObject.pushValue(l, true); LuaObject.pushValue(l, b); result = 2; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
protected virtual void BaseOnDisable() { #if FIX_NEW_INPUTSYSTEM_SUPPORT // the coroutine will be terminated, so this will ensure it restarts when we are next activated BlinkCoroutine = null; DeactivateInputField(); if (m_TextComponent != null) { m_TextComponent.UnregisterDirtyVerticesCallback(MarkGeometryAsDirty); m_TextComponent.UnregisterDirtyVerticesCallback(UpdateLabel); if (m_VerticalScrollbar != null) { var onScrollbarValueChangedHandler = (UnityAction <float>)System.Delegate.CreateDelegate( typeof(UnityAction <float>), this, "OnScrollbarValueChange"); m_VerticalScrollbar.onValueChanged.RemoveListener(onScrollbarValueChangedHandler); } } CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this); // Clear needs to be called otherwise sync never happens as the object is disabled. if (CachedInputRenderer != null) { CachedInputRenderer.Clear(); } if (m_Mesh != null) { DestroyImmediate(m_Mesh); } m_Mesh = null; // Unsubscribe to event triggered when text object has been regenerated var onTextChangedHandler = (System.Action <Object>)System.Delegate.CreateDelegate( typeof(System.Action <Object>), this, "ON_TEXT_CHANGED"); TMPro_EventManager.TEXT_CHANGED_EVENT.Remove(onTextChangedHandler); BaseSelectableOnDisable(); #else base.OnDisable(); #endif }
public static int RegisterCanvasElementForGraphicRebuild_s(IntPtr l) { int result; try { ICanvasElement element; LuaObject.checkType <ICanvasElement>(l, 1, out element); CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(element); LuaObject.pushValue(l, true); result = 1; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
protected override void OnValidate() { base.OnValidate(); if (Application.isPlaying && IsActive()) { UpdateSliders(); } _layoutTransform = _layoutGroup.GetComponent <RectTransform>(); var prefabType = UnityEditor.PrefabUtility.GetPrefabType(this); if (prefabType != UnityEditor.PrefabType.Prefab && !Application.isPlaying) { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); } }
public override void SetVerticesDirty() { //Debug.Log("SetVerticesDirty() on Object ID: " + this.GetInstanceID()); if (m_verticesAlreadyDirty || this == null || !this.IsActive() || CanvasUpdateRegistry.IsRebuildingGraphics()) { return; } m_verticesAlreadyDirty = true; CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild((ICanvasElement)this); }
protected override void OnValidate() { base.OnValidate(); //Onvalidate is called before OnEnabled. We need to make sure not to touch any other objects before OnEnable is run. if (IsActive()) { Title = _title; Set(QualitySettings.GetQualityLevel()); } var prefabType = UnityEditor.PrefabUtility.GetPrefabType(this); if (prefabType != UnityEditor.PrefabType.Prefab && !Application.isPlaying) { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); } }
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(); }
void ResetContentSize() { float sizeX, sizeY; if (IsVertical) { sizeX = _scroll.viewport.rect.width; sizeY = _colCellCount * (itemSize.y + itemSpace.y) - itemSpace.y + Padding.top + Padding.bottom; } else { sizeX = _rowCellCount * (itemSize.x + itemSpace.x) - itemSpace.x + Padding.right + Padding.left; sizeY = _scroll.viewport.rect.height; } //_scroll.content.localPosition = Vector3.zero; _scroll.content.sizeDelta = new Vector2(sizeX, sizeY); CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(_scroll); }
public override void SetVerticesDirty() { if (this == null || !this.IsActive()) { return; } if (CanvasUpdateRegistry.IsRebuildingGraphics()) { return; } CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this); if (m_OnDirtyVertsCallback != null) { m_OnDirtyVertsCallback(); } }
void Update() { if (m_SpriteBeginIndex < m_SpriteEndIndex && m_Icon != null) { m_SpriteDeltaTime += Time.deltaTime; if (m_SpriteDeltaTime >= m_SpriteDuration) { m_SpriteDeltaTime -= m_SpriteDuration; ++m_SpriteCurrentIndex; if (m_SpriteCurrentIndex < m_SpriteBeginIndex || m_SpriteCurrentIndex > m_SpriteEndIndex) { m_SpriteCurrentIndex = m_SpriteBeginIndex; } if (!CanvasUpdateRegistry.IsRebuildingGraphics()) { ShowSpriteIndex(m_SpriteCurrentIndex); } } } }
protected override void OnValidate() { base.OnValidate(); Set(_value, false); if (_buttonType == Type.Push) { Set(false, false); } UpdateMarker(_graphicTransition == ButtonTransition.None); var prefabType = UnityEditor.PrefabUtility.GetPrefabType(this); if (prefabType != UnityEditor.PrefabType.Prefab && !Application.isPlaying) { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); } }
protected override void OnValidate() { base.OnValidate(); if (WholeNumbers) { m_MinValue = Mathf.Round(m_MinValue); m_MaxValue = Mathf.Round(m_MaxValue); } UpdateCachedReferences(); SetX(m_ValueX, false); SetY(m_ValueY, false); // Update rects since other things might affect them even if value didn't change. UpdateVisuals(); UnityEditor.PrefabAssetType prefabType = UnityEditor.PrefabUtility.GetPrefabAssetType(this); if (prefabType != UnityEditor.PrefabAssetType.Regular && !Application.isPlaying) { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); } }
protected override void OnValidate() { base.OnValidate(); m_Size = Mathf.Clamp01(m_Size); //This can be invoked before OnEnabled is called. So we shouldn't be accessing other objects, before OnEnable is called. if (IsActive()) { UpdateCachedReferences(); Set(m_Value, false); // Update rects since other things might affect them even if value didn't change. UpdateVisuals(); } UnityEditor.PrefabType prefabType = UnityEditor.PrefabUtility.GetPrefabType(this); if (prefabType != UnityEditor.PrefabType.Prefab && !Application.isPlaying) { CanvasUpdateRegistry.RegisterCanvasElementForLayoutRebuild(this); } }
private IEnumerator OnRectTransformDimensionsChange() { if (this._rt == null || this.ParentCanvas == null || this.ParentCanvas.renderMode == RenderMode.WorldSpace) { yield break; } if (CanvasUpdateRegistry.IsRebuildingLayout()) { yield return(null); } bool oldVisible = this._isVisible; this._isVisible = !this.ParentCanvas.pixelPerfect || VisibleComponent.IsRectVisible(this._rt); if (!oldVisible && this._isVisible) { this.BecameVisible(); } }
public override void UpdateSelf(float deltaTime) { base.UpdateSelf(deltaTime); int f = frameIndex; UpdateAnim(deltaTime); if (f != frameIndex) { CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this); } #if UNITY_EDITOR else { if (Application.isEditor) { CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this); } } #endif }