From d07e14add74e017b52ab2371efeea1aa4ea10ced Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 8 May 2021 23:15:13 +0800 Subject: +init --- .../UnityEngine.UI/EventSystem/UIBehaviour.cs | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/UIBehaviour.cs (limited to 'Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/UIBehaviour.cs') diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/UIBehaviour.cs b/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/UIBehaviour.cs new file mode 100644 index 0000000..fa24cff --- /dev/null +++ b/Assets/uGUI-2017.1/UnityEngine.UI/EventSystem/UIBehaviour.cs @@ -0,0 +1,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; + } + + } +} -- cgit v1.1-26-g67d0