• 奥东......NGUI 交互功能


    相关地址链接:

               http://www.unitymanual.com/forum.php?mod=viewthread&tid=21203&extra=page%3D1%26filter%3Dtypeid%26typeid%3D117

    目的:

         拖动一个控件的时候,你可以看到控件的高亮显示效果

    创建一个场景,然后创建一个Sprite,加入一个Box Collider,这个时候就具有交互功能了

    这个时候根据事件分发机制,加入一个UIButton 脚本

    这里SpritesColors,分别代表可以更改对应状态(按钮的正常,经过,按压,禁用)Sprite,和颜色可以变化

    这个时候其实已经具有交互功能

    第二步:

           在创建的第一个SpriteA中修改图片为Window

           因为想让他和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

             此时SpriteLabel 颜色也会发生变化

    加入一个新的UISprite,是Tiled类型的Sprite

    目的:

              想让这个Tiled Texture(平铺的纹理)在指针悬停在按钮上时消失

               把第二个UIButton 中的Lable替换成刚才新加入的Sprite

                并且调整Hoverpressed状态下的颜色和透明度全部设置为0

              现在再单击播放按钮,当指针移动到按钮上时,平铺的Sprite完全消失了

     

    Tip1:

    不论是Sprite,还是Label,都是触发点击按钮事件,最根本的就是添加了一个Collider,和一个脚本进行了点击(其它操作也是可以的)事件,上图On Click中是一个GameObject中所具有的脚本事件中对应的方法

    可以把一个脚本挂载到别的GameObject上面,然后进行点击的时候触发这个GameObject中挂载的脚本中对应的方法,达到了复用的效果

    Tip2:

            1  所谓的交互,就是在父级Sprite中添加两个脚本Button脚本,在Button脚本中修改Tween Target 为父级本身Sprite和子级的Label就能实现,点击按钮的同时,父级和子级的颜色都会改变

            2  交互《==》函数的调用(可以传递参数,也可以不传递)

  • 相关阅读:
    Zabbix poller processes more than 75% busy
    标签无效 "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" 预计。
    Received empty response from Zabbix Agent at[172.16.1.51]. Assuming that agent dropped connection because of access permissions
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    Received empty response from Zabbix Agent at [172.16.1.7]...
    Too many open files
    Object.defineProperty之observe实现
    深拷贝 deepAssign
    提交操作自动遮蔽实现之ajax
    js检测输入域的值是否变化
  • 原文地址:https://www.cnblogs.com/nauy/p/4079598.html
Copyright © 2020-2023  润新知