注意
:考虑到UGUI的内容比较多,我将UGUI的内容分开,并全部整合放在【unity游戏开发——UGUI】专栏里,感兴趣的小伙伴可以前往逐一查看学习。
文章目录
一、Button是什么
Button是按钮组件,是UGUI中用于处理玩家按钮相关交互的关键组件。Button按钮组件也分两种:
旧按钮组件
新按钮组件
默认创建的Button由2个对象组成:
- 父对象——Button组件依附对象,同时挂载了一个Image组件,作为按钮背景图。
- 子对象——按钮文本(可选)。新旧Button按钮的唯一区别就是文本这个文本组件用的旧的Text文本还是新的TextMeshPro文本组件。
二、Button按钮组件参数
1、Interactable 能不能交互
是否接受点击响应输入。
2、Transition 过渡
响应用户输入的过渡效果。
2.1 None 无:没有状态变化效果,点击没有交互效果。
2.2 ColorTint 颜色色彩:用颜色表示不同状态的变化。
(1)TargetGraphic 目标图形
控制的目标图形,默认关联的是自己身上的Image组件,然后再对Image进行叠加操作。
(2)Normal Color 正常颜色
正常状态颜色。
(3)Highlighted Color 高亮颜色
鼠标进入时显示高亮颜色。
(4)Pressed Color 按下颜色。
(5)Selected Color 选中的颜色
上一次点击的按钮会作为焦点,进入选中状态,展示选中的颜色。
(6)Disabled Color 禁用时的颜色
Interactable不勾选时展示。
(7)Color Multiplier 色彩乘数
颜色倍增器,过渡颜色乘以该值,一般不改。
(8)FadeDuration 淡化持续时间
衰减持续时间,从一个状态进入另一个状态时需要的时间。
2.3 Sprite Swap Sprite 交换:用图片表示不同状态的变化。
(1)Highlighted Sprite:鼠标进入时图片。
(2)Pressed Sprite:按下时图片。
(3)Selected Color:选中时的颜色。
(4)Disabled Sprite:禁用时显示的图片。
2.4 Animation 动画:用动画表示不同状态的变化。
一般用于实现按钮操作同步触发一些动画效果。
点击AutoGenerateAnimation可以自动生成animator文件,并且给当前按钮添加animator组件。生成后Unity帮我自动设置了切换条件和Animation文件。
但是对于Animation文件的效果是空,要自己设置动画效果。
(1)Normal Trigger:正常动画触发器。
(2)Highlighted Trigger:鼠标进入状态时触发器。
(3)Pressed Trigger:按下时触发器。
(4)Selected Trigger:选中时触发器。
(5)Disabled Trigger:禁用时触发器。
3、Navigation 导航
导航模式,可以设置UI元素如何在播放模式中控制导航。
比如用于键盘手柄等按钮控制切换,可以修改按钮只能垂直或者竖直选择。
3.1 None:无键盘导航,按上下左右wasd都没用。
3.2 Everything:所有都能导航。
3.3 Horizontal:水平导航,按左右ad有用。
3.4 Vertical:垂直导航,按上下ws有用。
3.5 Automatic:自动导航,按上下左右wasd都有用。
3.6 Explicit:指定周边控件进行导航。
手动拖拽上下左右wasd切换到哪个控件。
4、Visualize 可视化按钮。
点击后可以在场景窗口看到导航连线。
三、Button按钮代码控制
得到Button组件
// 获取当前脚本所附加的 GameObject 上的 Button 组件
Button button = this.GetComponent<Button>();
设置交互状态 UGUI其他控件大多也有这个变量
// 设置 Button 组件的交互状态为可交互,即按钮可以与用户进行交互
button.interactable = true;
设置状态过渡效果
// 设置 Button 组件的状态过渡效果为 None,表示没有过渡效果
button.transition = Selectable.Transition.None;
设置Button上的图片
// 想要设置Button上的图片,一般都是获取当前脚本所附加的 GameObject 上的 Image 组件进行设置
Image image = this.GetComponent<Image>();
四、Button按钮监听事件的两种方式
点击事件是在按钮区域抬起按下一次,就算一次点击
1、拖脚本监听点击事件
比如书写一个脚本,编写一个测试方法
public void ClickBtn()
{
print("按钮点击1");
}
点击Button组件下OnClick下面的添加按钮,可以选择关联对象,在选择关联对象上哪个脚本的哪个事件,进行点击事件的监听。只能关联功能函数。可以关联多个函数。
2、代码添加点击事件
添加点击事件监听
//声明点击按钮函数
private void ClickBtn2()
{
print("按钮点击2");
}
// 添加 ClickBtn2 方法作为 button 的点击事件监听器,当 button 被点击时,会执行 ClickBtn2 方法
button.onClick.AddListener(ClickBtn2);
// 添加一个匿名函数作为 button 的点击事件监听器,当 button 被点击时,会执行其中的代码块
button.onClick.AddListener(() => {
print("123123123");
});
移除点击事件监听
// 移除 ClickBtn2 方法作为 button 的点击事件监听器
button.onClick.RemoveListener(ClickBtn2);
移除所有点击事件监听
// 移除所有的点击事件监听器,即移除 button 上绑定的所有方法
button.onClick.RemoveAllListeners();
专栏推荐
完结
好了,我是向宇
,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!