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!");
}
}

操作步骤:

  1. 创建一个空物体,并将脚本ButtonExample挂载到该物体上。
  2. 在场景中创建一个按钮,并将该按钮的引用赋值给button变量。
  3. 运行游戏,点击按钮,控制台将输出"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;
}
}

操作步骤:

  1. 创建一个空物体,并将脚本ButtonExample挂载到该体物上。
  2. 在场景中创建一个按钮,并将该按钮的引用赋值给button变量。
  3. 运行游戏,点击按钮,按钮的颜色将变为红色。

注意事项:

  • 确保按钮的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;
}
}

操作步骤:

  1. 创建一个空物体,并将脚本ButtonExample挂载到该物体上。
  2. 在场景中创建一个按钮,并将该按钮的引用赋值给button变量。
  3. 运行游戏,点击按钮,按钮将变为不可交互状态。

注意事项:

  • 确保按钮的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!");
}
}

操作步骤:

  1. 创建一个空物体,并将脚本ButtonExample挂载到该物体上。
  2. 在场景中创建一个按钮,并将该按钮的引用赋值给button变量。
  3. 运行游戏,按空下格键,控制台将输出"Button clicked!"。

注意事项:

  • 确保按钮的OnClick事件已经绑定到ButtonExample脚本的OnClick函数。

参考资料

Unity UGUI的Button组件的介绍及使用的更多相关文章

  1. Unity UGUI之Button

    创建Button后,会出现一个Image组件和一个Button组件,以及Button子节点Text(可以删除不影响功能) 其中Image的Image Type中有四个选项--Simple.Sliced ...

  2. Unity UGUI实现Button按钮长按状态的判断

    代码: using UnityEngine.EventSystems; using System.Collections; /// <summary> /// 脚本位置:UGUI按钮组件身 ...

  3. Unity UGUI——Rect Transform组件(基础属性)

    基础属性:Width.Height.Pivot图示 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJfQUhhbw==/font/5a6L5L2T/fo ...

  4. Unity UGUI Layout自动排版组件用法介绍

    Unity UGUI布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...

  5. Unity UGUI基础之Button

    UGUI Button,可以说是真正的使用最广泛.功能最全面.几乎涵盖任何模块无所不用无所不能的组件,掌握了它的灵巧使用,你就几乎掌握了大半个UGUI! 一.Button组件: Interactabl ...

  6. 关于Unity中UI中的Button节点以及它的Button组件

    Button是最常用的UI节点,包含的组件有 1.Image组件 显示Button的纹理,把Image贴图拖进Image组件中后,记得点击Set Native Size,显示贴图原始大小 2.Butt ...

  7. Unity UGUI —— 无限循环List

    还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是 ...

  8. Unity UGUI

    超详细的基础教程传送门:(持续更新中) Unity UGUI之Canvas&EventSystem:http://blog.csdn.net/qq992817263/article/detai ...

  9. Unity UGUI 小知识

    1.有个控件叫Selectable 这个控件在button,slider等身上有,也可以自行添加,可通过API搜索所有带这个控件的物体统一控制. 2.实现ScrollView只使用Scrollbar操 ...

  10. Unity UGUI鼠标穿透UI问题(Unity官方的解决方法)

    简述 最近在用UGUI的时候遇到了鼠标穿透的问题,就是说在UGUI和3D场景混合的情况下,点击UI区域同时也会 触发3D中物体的鼠标事件.比如下图中 这里给Cube加了一个鼠标点击改变颜色的代码,如下 ...

随机推荐

  1. 2021-12-18:找到字符串中所有字母异位词。 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成

    2021-12-18:找到字符串中所有字母异位词. 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成 ...

  2. 【工作随手记】并发之synchronized

    synchronized对于java同学肯定都是耳熟能详的必修课了.但是不管对于新手还是老手都有一些容易搞错的点.这里权做一点记录. 锁的是代码还是对象? 同步块一般有两种写法. 1是直接加以方法体上 ...

  3. 5.5. Java并发工具类(如CountDownLatch、CyclicBarrier等)

    5.5.1 CountDownLatch CountDownLatch是一个同步辅助类,它允许一个或多个线程等待,直到其他线程完成一组操作.CountDownLatch有一个计数器,当计数器减为0时, ...

  4. 【python基础】复杂数据类型-列表类型(排序/长度/遍历)

    1.列表数据元素排序 在创建的列表中,数据元素的排列顺序常常是无法预测的.这虽然在大多数情况下都是不可避免的,但经常需要以特定的顺序呈现信息.有时候希望保留列表数据元素最初的排列顺序,而有时候又需要调 ...

  5. 一分钟学一个 Linux 命令 - find 和 grep

    前言 大家好,我是 god23bin.欢迎来到<一分钟学一个 Linux 命令>系列,每天只需一分钟,记住一个 Linux 命令不成问题.今天需要你花两分钟时间来学习下,因为今天要介绍的是 ...

  6. 一站式数据可观测性平台 Datavines 正式开源啦

    Datavines是一站式开源数据可观测性平台,提供元数据管理.数据概览报告.数据质量管理,数据分布查询.数据趋势洞察等核心能力,致力于帮助用户全面地了解和掌管数据,让您做到心中有数,目前作为 Dat ...

  7. 大数据实战手册-开发篇之IO

    2.4 sparkContext IO:读 2.4.1 textFile # Load a text file and convert each line to a Row. lines = sc.t ...

  8. ELK8.8部署安装并配置xpark认证

    ELK8.8部署安装并配置xpark认证 介绍   主要记录下filebeat+logstash+elasticsearch+kibana抽取过滤存储展示应用日志文件的方式:版本基于8.8,并开启xp ...

  9. TypeScript又出新关键字了?

    TypeScript 5.2将引入一个新的关键字:using.当它离开作用域时,你可以用Symbol.dispose函数来处置任何东西. { const getResource = () => ...

  10. Pyinstaller打包 Pytest+Allure成exe文件执行时,报错ERROR: usage: apitest.exe [options] [file_or_dir] [file_or_dir] [...] xxx.exe: error: unrecognized arguments: --alluredir=.\\report\\xml --clean-alluredir

    网上找了很多案例啊  都没解决问题,由本人的多次试验 终于成功解决 1.打包运行 pyinstaller -D  xxx.py 打包成功后  执行exe报错  如下 2.此情况是说明  命令无法正确识 ...