关于源码
关于源码可以参考这篇博客下载或调试。
Selectable
特性
[AddComponentMenu("UI/Selectable", 70)] [ExecuteInEditMode] [SelectionBase] [DisallowMultipleComponent]
AddComponentMenu – 为Component菜单添加选项,顺序为70。当点击一个GameObject的AddComponent按钮时,会弹出一个菜单,点击UI选项,就可以看到排在最后一个的就是Selectable。
ExecuteInEditMode – 该组件会在编辑器下执行。
SelectionBase – 标记该对象为选择基本对象。
DisallowMultipleComponent – 不允许一个GameObject上出现同种组件。我们无法为一个对象添加两个Selectable组件,也无法为一个Button对象再添加一个InputField组件。
属性
- 继承自UIBehaviour,并且继承了7个接口。
public class Selectable : UIBehaviour, IMoveHandler, IPointerDownHandler, IPointerUpHandler, IPointerEnterHandler, IPointerExitHandler, ISelectHandler, IDeselectHandler
UIBehaviour – 所有UI组件的基类,它被放在EventSystem目录下,除了IsDestroyed以外,其他都是虚函数,我们也可以认为它是事件系统的一部分,它添加了Awake(当脚本实例被加载,即AddComponent时)、OnRectTransformDimensionsChange(当RectTransform维度变化)等方法来接收来自UnityEngine 的事件。
Selectable – Awake 时获取了一个Graphic 的组件实例m_TargetGraphic(Image组件间接继承自Graphic)。如果我们选择的Transition为Color Tint,当