1、Button是什么
按钮组件,是UGUI中用于处理玩家按钮相关交互的关键组件
默认创建的Button由2个对象组成:
父对象——Button组件依附对象,同时挂载了一个Image组件,作为按钮背景图
子对象——按钮文本(可选)
2、Button参数
(1)Interactable:是否接受输入(按钮是否可以点击响应)
(2)Transition:响应用户输入的过渡效果
None:没有状态变化效果
ColorTint:用颜色表示不同状态的变化
TargetGraphic | 控制的目标图形 | Normal Color | 正常状态的颜色 | Highlighted Color | 鼠标进入时显示高亮颜色 | Pressed Color | 按下时的颜色 | Selected Color | 选中的颜色(点击一次后表示被选中) | Disabled Color | 禁用时的颜色(Interactable未被勾选时) | Color Multiplier | 颜色倍增器,过渡颜色乘以该值 | FadeDuration | 衰减持续事件,从一个状态进入另一个状态所需要的时间 |
Sprite Swap:用图片表示不同状态的变化
通过 Auto Generate Animatio可以自动生成相关的动画状态控制器Controller,相关的触发器已经自动创建好了 ,只需要制作按钮上的动画即可
Highlighted Sprite | 选中时图片 | Pressed Sprite | 按下的图片 | Disabled Sprite | 禁用时显示的图片 |
Animation:用动画表示不同状态的变化
Normal Trigger | 正常动画触发器 | Highlighted Trigger | 鼠标进入状态时触发器 | Pressed Trigger | 按下时触发器 | Seleted Trigger | 选中时触发器 | Disabled Trigger | 禁用时触发器 |
(3)Navigation:导航模式,可以设置UI元素如何在播放模式中控制器导航(通过方向键控制被选中的按钮)
None | 无键盘导航 | Horizontal | 水平导航 | Vertical | 垂直导航 | Automatic | 自动导航 | Explicit | 指定周边控件进行导航 (手动设置按钮的关联按键) |
Visualize:可以在场景窗口看到导航连线
(4)OnClick:单击(按下再抬起)执行的函数列表
3、代码控制
Button btn = this.GetComponent<Button>();
btn.interactable = true;
btn.transition = Selectable.Transition.None;
Image img = this.GetComponent<Image>();
4、监听点击事件的两种方式
点击事件是:在按钮区域内部抬起按下一次,就算一次点击(在按钮内部按下,按钮外部抬起,不算点击)
(1)拖脚本
Onclick下点击”+“,将相关button对象拖入进行关联,然后选择该button对象依附脚本的响应函数(只能显示Public 修饰的函数)(只能显示Public 修饰的函数)
(2)代码添加
Button btn = this.GetComponent<Button>();
btn.onClick.AddListener(无参无返回的委托函数);
例如:
btn.onClick.AddListener(ClickBtn);
private void ClickBtn() {
? ? print("ClickBtn by code");
}
或者
btn.onClick.AddListener(() => {
? ? ? ? ? ? print("onClick by lambda code");
})?
若要移除响应函数:
btn.onClick.RemoveListener(ClickBtn);?
btn.onClick.RemoveAllListeners(); //清除Lambda表达式的响应函数?
|