Unity UI -- (5)增加基础按钮功能

分析分析一些常见UI

良好的UI设计会清晰地和用户沟通。用户知道他们能和屏幕上哪些东西交互,哪些不能。如果他们进行了交互,他们也要清楚地知道交互是否成功。换句话说,UI要提供给用户很多反馈。

我们可以来看看在Unity里或者在计算机上的任何应用程序:


(资料图片仅供参考)

将鼠标悬停在一个按钮上,会发生什么?

选择一个按钮会发生什么?

当一个物体被选中,你是怎么知道它被选中的?

下面是一些实例:

当鼠标悬停在Google Docs里的Edit按钮时,按钮底色会加深,让其更加显目。当然在某些应用中,改变的是文字的颜色而不是背景色。一般来说,如果按钮是浅色的,则通常在悬停时会让它的颜色变深色以便对比突出。 

如果按钮本身是深色的,则通常会让其变成浅色。

当我们点击或选中了一个按钮,它会再次变色,通常会是一个更加醒目的颜色。

我们可以尝试观察一下电脑上的其他应用程序的UI的相关变化。

编辑按钮的颜色转换

Unity允许我们控制按钮的颜色反馈,以便更好地和用户沟通。

1. 保持Settings Button游戏物体处于选中状态,在Button组件中定位到Transition属性。这个属性默认值应该是Color Tint。

当使用Color Tint时,当用户和按钮交互时,按钮的颜色可以发生变化。我们也可以使用Sprite Swap在进行交互时改变按钮所使用的的图片,或者使用Animation选项播放自定义的按钮动画。

下图展示了Color Tint方式的默认颜色配置:

Normal Color:纯白。表示按钮在普通状态下的颜色。

Highlighted Color: 对比Normal Color,只有一点点灰(具体数值可以点击颜色条查看)。当用户悬停在按钮上时的颜色。

Pressed Color:更加醒目的灰色。用户按住按钮时的颜色(比如鼠标按下不放)。

Selected Color:和Highlighted Color一样的颜色。当用户点击了按钮后的颜色,如果用户再次点击了其它按钮或屏幕的空白处,则按钮会恢复到Normal Color。本案例中这个颜色没有什么作用,因为后面我们实现的功能是当设置按钮被点击后,按钮会隐藏。

Disabled Color:深灰色。当按钮被禁用时的颜色。本案例中不涉及这种颜色的使用。

Color Multiplier:增加按钮上颜色色调的效果。如果我们有一个深色按钮或半透明按钮,这个属性会比较有帮助。

2. 运行场景,和设置按钮进行交互看看效果。

在Play模式中,可以尝试去改改这些颜色,看看效果。

增加On Click事件的action

接下来我们让应用能响应用户的点击。本案例中,用户可以通过点击设置按钮进入设置菜单界面。

当用户点击了设置按钮时,设置菜单会出现。

当用户点击了设置菜单里的退出按钮时,会返回标题界面。

首先我们来完成点击设置按钮,进入设置菜单的功能。

1. 在Hierarchy中,激活Title Text和Settings Button游戏物体,关闭Settings Menu游戏物体(可以右键点击此物体选择Toggle Active state,也可以选中游戏物体后在Inspector中的勾选或去勾选最上面的复选框)。

现在设置菜单会被隐藏掉。

2. 选择Settings Button,在Button组件中定位到On Click()部分。 

在On Click框中,我们会看到“List is Empty"。这意味着当按钮被选择时(点击),不会发生任何事情。

On Click是一个UnityEvent。UnityEvents可以在特定事件发生时,触发任意数量的动作。在本案例中,“Event”是指按钮的点击。

3. 选择“+”按钮,添加一个新的动作。

默认情况下,action是空的。

在设置按钮被点击时让设置菜单出现

为一个UnityEvent选择一个功能有两步:

1. 选择我们要执行功能的物体。

2. 从这个物体中选择一个我们想要执行的功能。

默认情况下,Object字段没有赋值,显示的是None(Object)。由于我们想要的是设置菜单出现,因此我们要将它赋值到这里。

1. 在Hierarchy中,点击并拖拽Settins Menu游戏物体到前面说的空Object字段。

我们会看到No Funtion下拉菜单现在会可用。No Funtion意味着还没有从这个物体中选任何功能。我们现在要选择我们希望在按钮点击事件发生时,要使用Settings Menu的哪个功能(也叫函数,方法,动作)。

2. 在No Funtion处的下拉菜单中选择GameObject > SetActive(bool)。当我们在这个菜单中进行查看时,实际是浏览了在这个物体上关联的脚本中的可用的功能方法。

选择了GameObject > SetActive(bool)之后,意思是当按钮被点击时,执行GameObject脚本里的SetAvctive函数。

现在我们会注意到,在Settings Menu物体右边会出现一个小的复选框。

由于我们所选择的SetAcive(boiol)函数,需要一个布尔值作为输入参数,因此这里的复选框就表示了这个布尔值。由于我们想要设置菜单变为Active,因此这个布尔值应该为true。

3. 将这个复选框勾选上,表示我们会传递true到SetAcive()函数,让设置菜单变为Active。

运行场景看看,当我们点击设置按钮时,设置菜单会出现,但设置菜单可能会覆盖在标题上面(取决于你自己所定义的设置菜单位置和大小)。我们想要的效果是进入设置菜单后标题和设置按钮就不显示了。

让标题和设置按钮消失

当我们点击设置按钮时,我们同时希望标题和设置按钮也消失。这可以通过和上一小节中的类似的方法实现。添加两个On Click的功能函数,分别选择Settings Button和Title Text物体,并且这次将SetActive的参数设置为false即可。

挑战:导航回标题界面

挑战一下,实现从设置菜单点击退出按钮后返回标题界面的功能。返回标题界面后,需要重新显示标题和设置按钮。

标签:

最近更新

Unity UI -- (5)增加基础按钮功能
2023-05-20 12:09:17
看热讯:地下城开盒子是什么(地下城开盒子在哪买的)
2023-05-20 11:13:22
计算机技术职业资格网有什么用_全国计算机技术职业资格网
2023-05-20 10:18:12
【独家】韩国解说看BLGvsGEN首局:原本期待GEN要碾压的,没想到BLG这么强
2023-05-20 09:28:59
债务上限谈判恢复 美共和党议员对本周末达成协议“没有信心” 焦点播报
2023-05-20 08:37:06
用完了所有腾挪手段 这一次,“美债炸弹”会爆吗? 世界观天下
2023-05-20 07:47:20
哈工大回应520为学生结婚开绿灯,首次联合民政局推出此服务 全球微速讯
2023-05-20 06:11:30
怎样才能找到注塑加工订单号_怎样才能找到注塑加工订单-天天快资讯
2023-05-20 04:55:16
红日歌曲表达的含义-红日歌曲|环球快看
2023-05-20 02:45:35
法拉利458卡孚CARV改色膜白金法拉利红,像是贵族的红色
2023-05-19 23:54:10
“中国大学生音乐艺术节”辽宁何氏医学院站献上青春音乐艺术盛宴 最资讯
2023-05-19 22:18:43
环球热资讯!何时挑选熟食_女孩子生日送什么礼物好知乎文章
2023-05-19 21:22:15
全球快资讯丨裙带菜的做法大全_裙带菜的营养价值
2023-05-19 20:53:31
蔚来汽车进军可控核聚变,20年内能把聚变商业化?|快报
2023-05-19 19:57:02
转发
2023-05-19 19:08:57
石家庄机动车驾驶人体检医院(石家庄机动车驾驶人)-天天观察
2023-05-19 18:25:26
全球要闻:全网唯一“唱跳双废”还被溺爱的女明星,找到了
2023-05-19 18:07:01
你想追的体操明星都来了!2023全国体操锦标赛运动员陆续抵达济南 每日热文
2023-05-19 17:11:26
证券板块跌1.51% 湘财股份涨0.12%居首
2023-05-19 16:48:19
太平丰润一年定开债券发起式增聘基金经理赵超 全球要闻
2023-05-19 16:29:41
总投资91.1亿元!江汉区二季度重大项目集中开工-当前报道
2023-05-19 15:52:36
2023MSI季中冠军赛淘汰赛JDG vs T1第五把战报|环球热文
2023-05-19 15:19:27
始于艾伦研究所的科学飞向国际空间站
2023-05-19 14:43:24
A股生物医药行情再起,生物药ETF(159839)上涨超1%
2023-05-19 14:02:40
泉州市区今年首场土拍收金21.65亿 隆恩、城建各获城东一宗商住地
2023-05-19 13:21:14
嘉兴嘉善低密宅地底价成交 本地国企获取-焦点热讯
2023-05-19 12:28:29
当前快讯:【港股异动】赣锋锂业(01772.HK)跌3.29%
2023-05-19 12:08:48
专家指导明方向 北站小学音乐市级课题开题会顺利召开
2023-05-19 11:21:46
远翔新材:5月18日获融资买入215.25万元
2023-05-19 10:55:19
年底,车谷投产纯电动工程车 头条焦点
2023-05-19 10:23:28