Ejemplo n.º 1
0
        public static SustainedCanvasView FindSustainedCanvasParent(ISustainedElement p_element)
        {
            SustainedCanvasView v_canvasView = null;

            if (!p_element.IsDestroyed())
            {
                if (p_element is SustainedCanvasView)
                {
                    v_canvasView = ((SustainedCanvasView)p_element);
                    if (v_canvasView.transform.parent != null)
                    {
                        v_canvasView = v_canvasView.transform.parent.GetComponentInParent <SustainedCanvasView>();
                    }
                    else
                    {
                        v_canvasView = null;
                    }
                }
                else if (p_element is Component)
                {
                    v_canvasView = (p_element as Component).GetComponentInParent <SustainedCanvasView>();
                }
            }
            return(v_canvasView);
        }
Ejemplo n.º 2
0
        protected virtual Canvas FindRootCanvasParent()
        {
            _rootParent = GetComponentInParent <Canvas>();

            //Renew Sustained canvas parent based in Canvas
            var v_newSustainedParent = _rootParent != null?_rootParent.GetComponentInParent <SustainedCanvasView>() : null;

            //Unregister self from the old SustainedCanvas Parent
            if (_sustainedCanvasParent != null && v_newSustainedParent != _sustainedCanvasParent)
            {
                SustainedCanvasView.UnregisterDynamicElement(this);
            }

            //Register self to a new SustainedCanvas
            _sustainedCanvasParent = v_newSustainedParent;
            if (_sustainedCanvasParent != null && enabled && gameObject.activeInHierarchy)
            {
                SustainedCanvasView.RegisterDynamicElement(this);
            }

            if (_rootParent != null)
            {
                _rootParent = _rootParent.rootCanvas;
            }

            return(_rootParent);
        }
Ejemplo n.º 3
0
        public static void UnregisterDynamicElement(ISustainedElement p_element)
        {
            SustainedCanvasView v_canvasView = FindSustainedCanvasParent(p_element);

            if (v_canvasView != null)
            {
                v_canvasView._sustainedChildrenElements.Remove(p_element);
                v_canvasView.MarkDynamicElementDirty();
            }
        }
Ejemplo n.º 4
0
        public static void RegisterDynamicElement(ISustainedElement p_element)
        {
            SustainedCanvasView v_canvasView = FindSustainedCanvasParent(p_element);

            if (v_canvasView != null)
            {
                if (!v_canvasView._sustainedChildrenElements.Contains(p_element))
                {
                    v_canvasView._sustainedChildrenElements.Add(p_element);
                    v_canvasView.MarkDynamicElementDirty();
                }
            }
        }
Ejemplo n.º 5
0
 protected override void OnDisable()
 {
     SustainedCanvasView.UnregisterDynamicElement(this);
     base.OnDisable();
 }
Ejemplo n.º 6
0
 protected virtual void OnBeforeTransformParentChanged()
 {
     SustainedCanvasView.UnregisterDynamicElement(this);
     UnregisterEvents();
 }