UGUI源码解析——UIBehaviour
UIBehaviour:是所有UI组件的基类,UI组件都是直接或者间接继承UIBehaviour这个抽象类,它继承自MonoBehaviour,所以拥有和Unity相同的生命周期。
源码解析
只会在物体创建时执行一次 ,与Mono Awake调用时机和次数保持一致
1 | protected virtual void Awake(){} |
在物体显示时执行一次,与Mono OnEnable一致
1 | protected virtual void OnEnable(){} |
在物体第一次激活时执行一次,在Awake之后,第一帧Update之前执行,与Mono Start一致
1 | protected virtual void Start(){} |
在物体隐藏时执行一次,与Mono OnDisable 一致
1 | protected virtual void OnDisable(){} |
在当前界面被销毁时调用一次,与Mono Destroy一致
1 | protected virtual void OnDestroy(){} |
在编辑器模式下:当脚本被加载(禁用或启用)或者Inspector窗口的值出现变化的时候会被调用,使用时添加#if UNITY_EDITOR
1 | protected virtual void OnValidate(){} |
在编辑器模式下:当脚本恢复默认值时调用,使用时添加#if UNITY_EDITOR
1 | protected virtual void Reset(){} |
当RectTransform变化时候调用,Anchors、Pivot、Width、Height变化时调用,Transform、Rotation、Scale变化时不调用
1 | protected virtual void OnRectTransformDimensionsChange(){} |
在父物体变化之前调用
1 | protected virtual void OnBeforeTransformParentChanged(){} |
在父物体变化之后调用
1 | protected virtual void OnTransformParentChanged(){} |
在Canvas状态变化时调用,比如禁用Canvas组件
1 | protected virtual void OnDidApplyAnimationProperties(){} |
在Canvas Group变化时调用
1 | protected virtual void OnCanvasGroupChanged(){} |
当应用动画属性时调用
1 | protected virtual void OnCanvasHierarchyChanged(){} |
获取GameObject和Component是否处于激活状态
1 | public virtual bool IsActive() |
获取GameObject和Component是否被销毁
1 | public bool IsDestroyed() |
评论