相關地址連接: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 交互《==》函數的調用(能夠傳遞參數,也能夠不傳遞)