uGUI中Slider控件a标签的onclick事件件怎么调出来

组件Image(Script)里的属性与前面所讲的Image控件的Image(Script)组件里的属性是一样的,例如Source Image的图像类型仍为一个Sprite(精灵),通过为此赋值,就可改变此Button的外观了,如果你为属性赋值了图片精灵,那么此Button的外观就与此精灵一致了。

Button是一个复合控件,它中还包含一个Text子控件: 

Contoller(新建动画控制器)窗口,要求你选择动画存放的路径,所以我们要先在Project中新建一个文件夹,专门用来存放动画,比如此文件夹取名为_Animator,此时就可选中此文件夹,并给此动画取名(动画的名默认为该Button的名字,当然其扩展名为controller),创建成功后,会在Project中的_Animator文件夹中可看到刚才创建的动画文件(动画的名默认为该Button的名字),且在这个Button的Inspector检视图中可看到会为此Button增加一个Animator组件: 
该事件处理器中有3个组件: 
如果我们将Event System (Script) 前的勾去掉,则管理整个场景的事件系统则不起作用了,此时运行程序,如果有Button,单击它时就不会有反应了。


该控件为一个复合控件,在主控件上还包含两个子控件,一个为Placeholder与Text,其Text就是前面所介绍的文本控件,程序运行时用户所输入的内容就保存在这个Text中,而Placeholder是占位符,它表示程序运行时在用户还没有输入内容时显示给用户的提示信息在这里我们把它设置为“请输入…”,设置方法是在层级视图中展开这个InputField控件,选中其子控件Placeholder,在Inspecter视图中可发现其Text(Sript)组件,修改其值为“请输入…”即可,如下图所示: 
第二个InputField的内容类型设为第8个Password:密码,这样程序就可启用其自动验证功能,例如在用户名称输入框中如果你输入的不是字母或数字则不能输入进去,第二个密码框中输入密码时它会默认以*号占位输入的密码。


上部的Interactable、Transition与前面介绍的控件是差不多的,下面谈谈它特有的一些属性: 
Direction:Slider的摆放方向,可以从左到右、从右到左、从上到下、从下到上 
Whole Numbers:整数数值。假设我们将Min Value设为1,Max Value设为100,那么调节手柄时,对应的值在1到100之间,而且是一个小数,如55.67,有时我们希望它是整数,那么选中该项即可。 
假设我们想在拖动手柄的时候,让其值显示在右边的一个文本框中,如下图所示: 
指的是Slider的滑块滑动其值发生改变时而产生的动态事件,它有一个参数Single:单精度,实际上这里指的是float,整个事件的机理是,当滑动滑块时,其值发生改变,事件产生,而且会实时将滑块所对应的值传给此事件,保存在这个参数中,供程序使用。


其属性与前面的Slider差不多,动态事件也是一样的,这里就只谈其特有的属性: 
Value:当拖支滑块时,其值是在0到1之间变化的 
Size:是滑块的大小,如果把它改成0.5,滑块就会大到占滑条的一半大。 
Number Of Steps:数值的步骤。假设设定为5,那么就会把Value分成5个值,调节滑块时其值就在这5个值中变化。


Toggle开关,当我们创建它后可发现它也为一个复合型控件 
它有Background与Label两个子控件,而Background控件中还有一个Checkmark子子控件,如果我们将其拖散可清楚地看见,Background是一个图像控件,而其子控件Checkmark也是一个图像控件,其Label控件是一个文本框,它们与我们所讲的控件是一致的,我们通过改变它们所拥有的属性值,即可改变Toggle的外观,如颜色、字体等等。下面来看看Toggle的一些重要属性。 
Is On:目前是处于开还是关。用鼠标点击那个Toggle按钮,将发现其中的对勾符号会在出现与不出现之间切换,同时与之相对应的,在其Inspector面板中,属性In On后面的对勾也在勾选与不勾选之间切换。

Graphic:图像。用鼠标点击那个Toggle按钮,其对勾符号会在出现与不出现之间切换,它的原理就是控制那个对勾图像出现与不出现而实现的,这个Graphic就是设置这个属性值的,你可以通过 
在Hierarchy面板中,选中我们刚才创建的Toggle,然后按键盘Ctrl+D两次,就可复制出两个Toggle了,并在场景视图中拖动它们的位置,使它们都可见,运行,我们将发现这个三个都可选中,即它们是复选框。如果我们把这三个组成一个组,让它们关联,就可做成单选了。 
AddComponent这个按钮,为其添加组件,在弹出的菜单中选择UI,在后续弹出菜单中 
中即可,这样我们便把这3个Toggle成组了,于是它们3个就只能单选其中一个了。为了更完美,首先调整空对象_ToggleGroup的位置与大小,让其包含那3个Toggle控件,然后在Hierarchy中,把3个Toggle选中并拖到_ToggleGroup中成为子物体 
这样在逻辑上与外观上均完备,且移动父物体时子物体也会跟着移动。 


滑动区域控件ScrollRect是在一个较小区域显示较多内部控件的一种机制。在UI系统中,这种控件的原型是没有的,它是我们开发者利用UI系统里已有的基本控件组合而成的。不过在UI系统里有ScrollRect这个类,即它是一个组件,不是控件。 
控件与组件有什么区别呢?简单地说,在一个控件里可以添加组件,如在Button上可添加Animator组件。有些控件在创建时,它会默认自带一些组件,如Panel会自带Image组件,其带括号的Script就表示这个Image是组件,因在UI系统里有Image这个基本控件的,故加上一个带括号的Script来区别控件与组件,说明此处的Image是组件而不是控件。同理,当我们创建一个Button控件时,默认情况下我们可以在其Inspector视图里发现它带有Image与Button两个组件的。

实际上我们可以这样理解,组件是一个脚本,是一个类,控件是这个类的实例化对象,是一个具体实现,比如Button控件里含有Button组件就好理解了。

Scrollbar,其功能简单说是用滑动条的滑动去控制内容区域的移动。根据此原理我们把Hierarchy视图中的Content与Scrollbar分别拖挂到这两属性值框中即完成了对象的指定工作。试运行程序并拖动滑动条,发现Content中4个按钮图片确实能随着滑动条的移动而移动了,如图: 
但这还不完美,如果能隐藏多余的内容,只显示特定区域的内容,就象网页中的滚动条那样就好了,如下图所示: 


如图,当我们点击顶部不同的标签时,下部的内容区域会显示对应的内容版面。

在画布上创建一个空对象,命名为Lable,创建一个Image,布局上Lable在上面,Image在下面,如下图: 
Background是背景,是未被选中时表现出来的图景。首先在场景视图中将其大小调大,使其与整个按钮形状一样大,然后在其Inspector视图中的Image组件里设置Source Image或Color属性值,这里为了简便,我们将其Color值设为较暗的灰度色,用于它未被选中时展现出来的颜色。 
Checkmark是选中时表现出来的图景,默认是一个对钩,同理首先在场景视图中将其大小调大,使其与整个按钮形状一样大,这样一来,Checkmark与Background一样大,两个重叠起来了,当未选中时,表现出来的是Background的景象,选中后表现出来的是Checkmark的景象。对于Checkmark的调整,然后在其Inspector视图中的Image组件里设置Source Image或Color属性值,这里为了简便,将Image组件里的Source Image属性设为空None,即去掉那个对钩图像,并将其Color值设为较亮的灰度色,用于它被选中时展现出来的颜色。

这三个按钮状的Toggle按设计思路应该为单选,所以按以前所学的知识,需设置它们的Group属性值为Lable ,同时,对于它们的Is On属性,第一个Toggle的保持勾选,另两个去掉勾选,即使开始时,第一个处于默认选中状态。

在Image上创建三个为空的子控件,分别命名为Page1、Page2、Page3,并调整它们的大小,使其与Image一样大,位置上与Image重叠。再在Page1、Page2、Page3上各自创建一个Text子控件,也调整它们的大小大致与Image相当,且位置上也与Image重叠,并分别输入要显示的文本内容。这三个Text是重叠在一起的,显示时,其内容也会重叠,如果我们只勾选第一个Text的父控件Page1的 ,另两个去掉勾选,那么显示时会默认显示第一个,另两个处于未激活状态,不会显示出来,自然就不会发生显示的重叠了。

最后一步我们来实现当我们点击顶部不同的标签时,下部的内容区域会显示对应的内容版面。也许你会认为这要用到脚本,实际上有更简便的方法,当然会离不开事件处理机制的。下面以Toggle1为例,选中它,在其Inspetctor视图中,单击: 
中的“+”号,为其添加事件,如下图: 
虽然我们没有编写自己的脚本,但Unity有内置的许多方法的,这里我们选择第二项GameObject: 
选择上边的动态方法:SetActive,设置结果如下图: 
这个事件的运行机理是:当Toggle1的选中状态发生改变时(注意是状态发生改变,选中时会产生事件,那么由选中到取消选中,也会产生事件),所挂接的对象Page1会被激活或失效。 
根据这个原理,Toggle2的事件委托对象为Page2,Toggle3的事件委托对象为Page3,这样就实现了当我们点击顶部不同的标签时,下部的内容区域会显示对应的内容版面了,如下图: 



点击事件的三种实现形式

方式二:Unity3D编辑器操作设置实现

// 定义需要绑定的事件类型。并设置回调函数 // 添加事件触发记录到GameObject的事件触发组件

在事件组件面板中,第一个选项框中的值我们在Button时就是一直使用的是其默认值:Runtime Only,如下图所示: 
当我们单击该选项时,出现的下拉菜单如下: 
Off:关闭事件处理功能; 
Editor And Runtime:编辑与运行时,其事件处理功能均起作用,调编辑器参数时管用; 
Runtime Only:仅在运行时,其事件处理功能才起作用。

Unity3D是一款实现三维视频游戏,建筑可视化,实时三维动画等互动内容的专业游戏引擎.如您需要购买询价,请联系.

我要回帖

更多关于 a标签的onclick事件 的文章

 

随机推荐