第四十章 Unity 按钮 (Button) UI

news/2024/11/28 16:42:10/

本章节我们介绍一下按钮UI。首先,我们创建一个新的场景“SampleScene3.unity”。然后,在菜单栏中点击“GameObject”->“UI”->“Button”,截图如下

我们选中刚刚创建的Button,然后查看它的Inspector检视面板,如下所示

我们发现Button UI元素即拥有Image组件,还拥有自己的Button组件。也就是说,我们可以给当前的按钮添加一张图片作为背景,事实上我们在现实开发中也经常这样做。这里,我们准备了一张按钮的背景图片(button.png),如下所示

我们把图片(button.png)的类型改成“Sprite(2D and UI)”精灵,然后拖拽到Image组件的Source Image选项中去,如下所示

这里,我们点击“Set Native Size”按钮,让Button去适应图片的尺寸,效果如下

如何修改Button的文字呢?我们查看层次面板发现,Button下面有一个Text

他们是父子关系,想要修改Button的文字内容,就可以修改Text里面的内容即可

我们修改了文字内容,字号大小,以及字体颜色,效果如下

接下来,我们就介绍它独有的Button组件的各个属性

我们逐一介绍上面的内容

Interactable按钮是可以接受点击事件,默认勾选即可。

Transition按钮点击效果,默认是Color Tint,也就是按钮的颜色改变。当然还有其他方式,他们分别是None(不做任何变动)、Color Tint(颜色改变) 、Sprite Swap(图片切换) 、Animation(执行动画)。这四种过渡方式其实就是当你点击按钮前、按下按钮时、离开按钮后按钮的一种变换过程而已。

Target Graphic 就是按钮使用的图片源。

Normal Color 就是按钮默认状态的颜色。

Highlighted Color 就是按钮高亮颜色。

Pressed Color 就是按钮按下时的颜色

Selected Color 就是按钮选中时候的颜色

Disable Color 就是按钮失效时候的颜色

Color Multiplier 则是颜色乘数值,默认1即可。

Fade Duration 则是按钮颜色切换的时间(单位秒)。

接下来,就是Navigation和Visualize用来设置UI元素的导航。在EventSystem中,存在一个当前被选中按钮,我们可以通过代码按下的上下左右,使被选中按钮进行更改。Automatic(自动导航):自动识别最近的一个控件并导航到下一个控件。None(关闭):关闭导航。Horizontal(水平导航):水平方向导航到下一个控件。Vertical(垂直导航):垂直方向导航到下一个控件。Explicit(指定导航):特别指定在按下特定方向键时从此按钮导航到哪一个控件。关于这个,我们就不详细介绍了。

接下来就是重点了,也就是我们的On Click() 列表。很多情况下,我们是希望点击按钮(发生点击事件)后执行一段逻辑代码(响应点击事件),那么我们应该如何操作呢?我们首先创建一个“ClickEventScript.cs”的脚本文件,代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ClickEventScript : MonoBehaviour
{public void testClick(){Debug.Log("点击了!");}
}

我们删除了Start和Update两个方法,同时添加了一个普通的“testClick”方法。然后,我们将这个脚本文件附加到“Main Carmera”游戏对象上面。

接下来,我们回到Button组件下的“On Click()”,如下所示

我们点击右下角的“+”号来添加“Main Carmera”游戏对象。

将“Main Carmera”从Hierarchy层次面板中拖拽到上面的“None (Object)”中。

然后,我们点击“No Function”选择我们刚刚创建的脚本“ClickEventScript.cs”中的的“testClick”方法。

在On Click的下面的列表中,分为左右两个选框,左边的选框是游戏对象,这个选框我们使用“Main Carmera”,因为我们将“EventScript.cs”脚本附加到它的上面了。右边的选框则是游戏对象身上的组件方法,因此我们可以选取到“EventScript.cs”中定义号的“testClick”方法。最终的效果如下所示

上面的Runtime Only 表示仅在运行时,其事件处理功能才起作用。

接下来,我们就可以运行整个项目,点击“Button”来查看是否触发“testClick”方法。

控制台已经显示了打印日志了,我们的“testClick”方法被成功调用了。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id


http://www.ppmy.cn/news/62826.html

相关文章

【数据结构】二叉树(详细)

二叉树 1.树1.1定义1.2基本术语1.3树形结构和线性结构1.4树的存储结构1.4.1双亲表示法1.4.2孩子兄弟表示法 2.二叉树2.1定义2.2特殊二叉树2.3性质2.4存储结构2.4.1顺序存储2.4.2链式存储结构 3.二叉树的基本操作3.1前序遍历(先序遍历)3.2中序遍历3.3后序…

Linux上安装Elasticsearch

Linux上安装Elasticsearch 文章目录 Linux上安装Elasticsearch1. 下载安装包2. 上传到linux服务器3. 解压4. 修改配置文件5. 扩大内存权限6. 启动ES(注意:root用户无法启动)创建用户创建所属组,赋予es文件操作权限:切换到yizhi用户进入bin目录启动elasti…

网络安全事件调查,如何追溯攻击者的行踪和攻击路径

在当今互联网的世界里,网络安全已成为一个非常重要的话题。随着网络攻击的不断增加,如何保护我们的网络安全已成为一个严峻的挑战。为了防止网络攻击,需要了解攻击者的行踪和攻击路径,以便更好地预防和应对网络攻击。 网络安全事…

LeetCode每日一题(持续更新中~~~)

文章目录 2432. 处理用时最长的那个任务的员工5.51419. 数青蛙5.61010. 总持续时间可被 60 整除的歌曲5.72290. 到达角落需要移除障碍物的最小数目5.82437. 有效时间的数目5.9 2432. 处理用时最长的那个任务的员工5.5 共有 n 位员工,每位员工都有一个从 0 到 n - 1…

大数据技术之Kettle

目录 第1章 Kettle概述 1.1 ETL简介 1.2 Kettle简介1.2.1 Kettle是什么 1.2.2 Kettle的两种设计 1.2.3 Kettle的核心组件 1.2.4 Kettle特点 第2章 Kettle安装部署 2.1 Kettle下载 2.1.1 下载地址 2.1.2 Kettle目录说明 2.1.3 Kettle文件说明 2.2 Kettle安装部署 …

JavaWeb综合案例-Servlet优化

将WebServlet的访问路径不要写死,写成通配符的形式 1. 反射笔记(后续代码会用到该机制) 1.1 基础概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象&am…

国产光伏仪器 6581太阳能电池板伏安特性测试仪

6581太阳能电池板伏安特性测试仪主要用于太阳能电池板生产的最终测试,也可以作为层压前测试使用,能大大提高一次封装成品率。该测试仪适合于单晶、多晶、薄膜等多种电池组件,可进行I-V曲线、P-V曲线、短路电流、开路电压、峰值功率等全部参数…

PID算法(位置式pid算法和增量式pid算法)

这里写目录标题 PID算法介绍比例环节比例积分环节比例积分微分环节 位置式PID增量式PIDPID参数整定采样周期选择PID参数整定方法![请添加图片描述](https://img-blog.csdnimg.cn/849bf1672243484699b131b487f05a55.png)试凑法临界比例法一般调节法 PID算法介绍 PID 算法是闭环…