相关地址连接:php
http://www.unitymanual.com/forum.php?mod=viewthread&tid=21203&extra=page%3D1%26filter%3Dtypeid%26typeid%3D117ide
目的:函数
拖动一个控件的时候,你能够看到控件的高亮显示效果spa
建立一个场景,而后建立一个Sprite,加入一个Box Collider,这个时候就具备交互功能了指针
这个时候根据事件分发机制,加入一个UIButton 脚本blog
这里Sprites,Colors,分别表明能够更改对应状态(按钮的正常,通过,按压,禁用)的Sprite,和颜色能够变化事件
这个时候其实已经具备交互功能图片
第二步:ip
在建立的第一个SpriteA中修改图片为Windowget
由于想让他和Sprite一块儿移动,因此建立了一个child 子级元素
调整Sprite中 Color Tint,调整背景颜色,点击播放按钮,就会发现
Lable并不会影响按钮事件的发生,由于Label中没有Collider,这个时候添加上
这个时候就会出现一个问题:
不论任何东西或控价在上层,并包含“Collilder”时候,将会影响事件的发生(只要上层包含了Collider)就会
影响事件的发生
任何在它下层的东西将不会接收到事件,即便没有任何脚本在控制事件
因此这个时候就要移除Lable中的Collider,对Label中的文字大小进行调整,而且加入Unified Anchor(统一的锚),在UILable Scrpt脚本中添加
让“Label”根据Target的尺寸自动进行调整,对应的Target
此时Sprite大小变化的时候,Label也就会跟随其进行变化
Label也就有高亮的效果,而不单单是它的背景颜色
这里也是用到了UIButton 脚本,可使用屡次,Sprite中添加UIButton脚本(这里是第二个脚本) ,Tween Target 选中Label
此时Sprite中Label 颜色也会发生变化
加入一个新的UISprite,是Tiled类型的Sprite
目的:
想让这个Tiled Texture(平铺的纹理)在指针悬停在按钮上时消失
把第二个UIButton 中的Lable替换成刚才新加入的Sprite
而且调整Hover和pressed状态下的颜色和透明度所有设置为0
如今再单击播放按钮,当指针移动到按钮上时,平铺的Sprite彻底消失了
Tip1:
不管是Sprite,仍是Label,都是触发点击按钮事件,最根本的就是添加了一个Collider,和一个脚本进行了点击(其它操做也是能够的)事件,上图On Click中是一个GameObject中所具备的脚本事件中对应的方法
能够把一个脚本挂载到别的GameObject上面,而后进行点击的时候触发这个GameObject中挂载的脚本中对应的方法,达到了复用的效果
Tip2:
1 所谓的交互,就是在父级Sprite中添加两个脚本Button脚本,在Button脚本中修改Tween Target 为父级自己Sprite和子级的Label就能实现,点击按钮的同时,父级和子级的颜色都会改变
2 交互《==》函数的调用(能够传递参数,也能够不传递)