summaryrefslogtreecommitdiff
path: root/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/UIBehaviour.cs
blob: fa24cff4736f631b534c064573d99404d5818612 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
namespace UnityEngine.EventSystems
{
    public abstract class UIBehaviour : MonoBehaviour
    {
#region MonoBehaviour共有生命周期

        protected virtual void Awake()
        {}

        protected virtual void OnEnable()
        {}

        protected virtual void Start()
        {}

        protected virtual void OnDisable()
        {}

        protected virtual void OnDestroy()
        {}

        // 父节点(包括非直接父节点的祖先节点)在hierachy中的父子层级改变前调用
        protected virtual void OnBeforeTransformParentChanged()
        { }

        // 父节点(包括非直接父节点的祖先节点)在hierachy中的父子层级改变完调用
        protected virtual void OnTransformParentChanged()
        { }

#endregion

        public virtual bool IsActive()
        {
            return isActiveAndEnabled;
        }

#if UNITY_EDITOR
        // 组件值在inspector中被修改时调用
        protected virtual void OnValidate()
        {}

        // inspector中右键reset调用
        protected virtual void Reset()
        {}
#endif

#region UGUI特有回调函数

        // 当gRectTransform大小改变(不包括位置)的时候回调。且如果子物体由于锚点的设置也会导致
        // 大小改变时也会调用子物体的这个回调。如果子物体大小不会因此改变,那么不会触发这个回调
        protected virtual void OnRectTransformDimensionsChange()
        {}

        // 用animation clip修此脚本属性值的时候触发。可以用于修正动画结果
        protected virtual void OnDidApplyAnimationProperties()
        {}

        // 祖先节点CanvasGroup参数变化或enable\disable或canvasGroup下面的canvas的层级变化
        protected virtual void OnCanvasGroupChanged()
        {}

        // 祖先节点Canvas enable\disable或OverrideSorting状态改变
        protected virtual void OnCanvasHierarchyChanged()
        {}

#endregion

        public bool IsDestroyed()
        {
            // Workaround for Unity native side of the object
            // having been destroyed but accessing via interface
            // won't call the overloaded ==
            return this == null;
        }

    }
}