奧東......NGUI 交互功能

相關地址連接:php

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

目的:函數

     拖動一個控件的時候,你能夠看到控件的高亮顯示效果spa

建立一個場景,而後建立一個Sprite,加入一個Box Collider,這個時候就具備交互功能了指針

這個時候根據事件分發機制,加入一個UIButton 腳本blog

這裏SpritesColors,分別表明能夠更改對應狀態(按鈕的正常,通過,按壓,禁用)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

         此時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  交互《==》函數的調用(能夠傳遞參數,也能夠不傳遞)

相關文章
相關標籤/搜索