Unity UGUI的Button组件的介绍及使用
UGUI的Button(按钮)组件的介绍及使用
1. 什么是UGUI的Button组件?
UGUI(Unity GUI)是Unity引擎中的一套用户界面系统,Button(按钮)是其中的一个常用组件。Button组件可以用于创建可交互的按钮,用户点击按钮时可以触发相应的事件。
2. Button组件工的作原理
Button组件通过检测用户的点击事件来触发相应的操作。当用户点击按钮时,Button组件会检测到点击事件,并执行相应的操作,如比调用指定的函数或改变按钮的状态。
3. Button组件的常用属性
- Interactable(可交互):设置按钮是否可交互。如果设置为false,按钮将无法被点击。
- Transition(过渡效果):设置按钮的过渡效果,包括颜色、缩放、透明度等。
- Normal Color(正常状态颜色):设置按钮在正常状态下的颜色。
- Highlighted Color高(亮状态颜色):设置按钮在高亮状态下的颜色。
- Pressed Color(按下状态颜色):设置按钮在按下状态下的颜色。
- Disabled Color(禁用状态颜色):设置按钮在禁用状态下的颜色。
4. Button组件的常用函数
- onClick.AddListener():为按钮添加点击事件的监听器。
- onClick.Remove()Listener:移除按钮的点击事件监听器。
- onClick.Invoke():手动触发按钮的点击事件。
5. 示例代码
示例1:创建一个简单的按钮
using UnityEngine;
using UnityEngine.UI;
public class ButtonExample : MonoBehaviour
{
public Button button;
void Start()
{
button.onClick.AddListener(OnClick);
}
void OnClick()
{
Debug.Log("Button clicked!");
}
}
操作步骤:
- 创建一个空物体,并将脚本
ButtonExample挂载到该物体上。 - 在场景中创建一个按钮,并将该按钮的引用赋值给
button变量。 - 运行游戏,点击按钮,控制台将输出"Button clicked!"。
注意事项:
- 确保按钮的
OnClick事件已经绑定到ButtonExample脚本的OnClick函数。
示例2:改变按钮的颜色
using UnityEngine;
using UnityEngine.UI;
public class ButtonExample : MonoBehaviour
{
public Button button;
void Start()
{
button.onClick.AddListener(OnClick);
}
void OnClick()
{
button.image.color = Color.red;
}
}
操作步骤:
- 创建一个空物体,并将脚本
ButtonExample挂载到该体物上。 - 在场景中创建一个按钮,并将该按钮的引用赋值给
button变量。 - 运行游戏,点击按钮,按钮的颜色将变为红色。
注意事项:
- 确保按钮的
OnClick事件已经绑定到ButtonExample脚本的OnClick函数。
示例3:禁用按钮
using UnityEngine;
using UnityEngine.UI;
public class ButtonExample : MonoBehaviour
{
public Button button;
void Start()
{
button.onClick.AddListener(OnClick);
}
void OnClick()
{
button.interactable = false;
}
}
操作步骤:
- 创建一个空物体,并将脚本
ButtonExample挂载到该物体上。 - 在场景中创建一个按钮,并将该按钮的引用赋值给
button变量。 - 运行游戏,点击按钮,按钮将变为不可交互状态。
注意事项:
- 确保按钮的
OnClick事件已经绑定到ButtonExample脚本的OnClick函数。
示例4:移除按钮的点击事件监听器
using UnityEngine;
using UnityEngine.UI;
public class ButtonExample : MonoBehaviour
{
public Button button;
void Start()
{
button.onClick.AddListener(OnClick);
}
void OnClick()
{
button.onClick.RemoveListener(OnClick);
}
}
操作步骤:
1.空一个 创建物体,并将脚本ButtonExample挂载到该物体上。
2. 在场景中创建一个按钮,并将该按钮的引用赋值给button变量。
3. 运行游戏,点击按钮,按钮的点击事件监听器将被移除。
注意事项:
- 确保按钮的
OnClick事件已经绑定到ButtonExample脚本的OnClick函数。
示例5:手动触发按钮的点击事件
using UnityEngine;
using UnityEngine.UI;
public class ButtonExample : MonoBehaviour
{
public Button button;
void Start()
{
button.onClick.AddListener(OnClick);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
button.onClick.Invoke();
}
}
void OnClick()
{
Debug.Log("Button clicked!");
}
}
操作步骤:
- 创建一个空物体,并将脚本
ButtonExample挂载到该物体上。 - 在场景中创建一个按钮,并将该按钮的引用赋值给
button变量。 - 运行游戏,按空下格键,控制台将输出"Button clicked!"。
注意事项:
- 确保按钮的
OnClick事件已经绑定到ButtonExample脚本的OnClick函数。
参考资料
Unity UGUI的Button组件的介绍及使用的更多相关文章
- Unity UGUI之Button
创建Button后,会出现一个Image组件和一个Button组件,以及Button子节点Text(可以删除不影响功能) 其中Image的Image Type中有四个选项--Simple.Sliced ...
- Unity UGUI实现Button按钮长按状态的判断
代码: using UnityEngine.EventSystems; using System.Collections; /// <summary> /// 脚本位置:UGUI按钮组件身 ...
- Unity UGUI——Rect Transform组件(基础属性)
基础属性:Width.Height.Pivot图示 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJfQUhhbw==/font/5a6L5L2T/fo ...
- Unity UGUI Layout自动排版组件用法介绍
Unity UGUI布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- Unity UGUI基础之Button
UGUI Button,可以说是真正的使用最广泛.功能最全面.几乎涵盖任何模块无所不用无所不能的组件,掌握了它的灵巧使用,你就几乎掌握了大半个UGUI! 一.Button组件: Interactabl ...
- 关于Unity中UI中的Button节点以及它的Button组件
Button是最常用的UI节点,包含的组件有 1.Image组件 显示Button的纹理,把Image贴图拖进Image组件中后,记得点击Set Native Size,显示贴图原始大小 2.Butt ...
- Unity UGUI —— 无限循环List
还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是 ...
- Unity UGUI
超详细的基础教程传送门:(持续更新中) Unity UGUI之Canvas&EventSystem:http://blog.csdn.net/qq992817263/article/detai ...
- Unity UGUI 小知识
1.有个控件叫Selectable 这个控件在button,slider等身上有,也可以自行添加,可通过API搜索所有带这个控件的物体统一控制. 2.实现ScrollView只使用Scrollbar操 ...
- Unity UGUI鼠标穿透UI问题(Unity官方的解决方法)
简述 最近在用UGUI的时候遇到了鼠标穿透的问题,就是说在UGUI和3D场景混合的情况下,点击UI区域同时也会 触发3D中物体的鼠标事件.比如下图中 这里给Cube加了一个鼠标点击改变颜色的代码,如下 ...
随机推荐
- 2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额。一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10、50
2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额.一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10.50 ...
- 2021-08-25:给定数组father大小为N,表示一共有N个节点,father[i] = j 表示点i的父亲是点j, father表示的树一定是一棵树而不是森林,queries是二维数组,大小为
2021-08-25:给定数组father大小为N,表示一共有N个节点,father[i] = j 表示点i的父亲是点j, father表示的树一定是一棵树而不是森林,queries是二维数组,大小为 ...
- Apache Arrow DataFusion原理与架构
本篇主要介绍了一种使用Rust语言编写的查询引擎--DataFusion,其使用了基于Arrow格式的内存模型,结合Rust语言本身的优势,达成了非常优秀的性能指标 DataFusion是一个查询引擎 ...
- linux FTP文本传输
目录 一.文本传输协议 二.连接方式 三.程序安装 四.黑名单和白名单 五.实验 1.实验一:匿名用户下载与上传 2.实验二:关闭匿名用户登录,允许普通用户登录在家目录上传和下载 3.实验三:禁止用户 ...
- 【Haxe】(一)VSCode 搭建 Haxe 开发环境
前言 咱换工作啦! 新工作这边需要用到的开发语言是 Haxe,最近大概会写几篇笔记.Haxe 的介绍就不写了,打算记录点有用的学习内容,先从搭建开发环境开始吧! 当前适用版本: VSCode:Curr ...
- BFF层聚合查询服务异步改造及治理实践 | 京东云技术团队
首先感谢王晓老师的[接口优化的常见方案实战总结]一文总结,恰巧最近在对稳健理财BFF层聚合查询服务优化治理,针对文章内的串行改并行章节进行展开,分享下实践经验,主要涉及原同步改异步的过程.全异步化后衍 ...
- 曲线艺术编程 coding curves 第三章 弧,圆,椭圆(ARCS, CIRCLES, ELLIPSES)
第三章 弧,圆,椭圆(TRIG CURVES) 原作:Keith Peters https://www.bit-101.com/blog/2022/11/coding-curves/ 译者:池中物王二 ...
- FTL潜规则:调优,才是算法精华
前言 在存储领域中有一个FTL的概念,这是一种Flash的内存管理算法,属于各个厂商的核心机密,每个厂商的处理方式不同,有的处理简单,有的处理复杂. FTL,即Flash Translations l ...
- 9.3 Django框架
Django 是一个非常流行的 Python Web 开发框架,它是完整且强大的,适用于构建大型 Web 应用.在这一章节中,我们将详细介绍 Django 的基本概念.组件和用法.为了便于理解,我们将 ...
- 【园子资深博主直播】 冰蓝老师《ChatGPT 初探》
AI对经济增长.经济周期.经济形态.社会就业都有着非常巨大的影响,ChatGPT4.0发布后,燃起了我们每一个开发人的激情和恐惧,但各路自媒体信息杂乱无序,缺少非常系统性的ChatGPT原理解读. 此 ...