【轉】UGUI之用腳本動態的改變Button的背景圖片 和 顏色


http://blog.csdn.net/u014771617/article/details/45102701

public Button button;
void Start()
{
ColorBlock cb = new ColorBlock();
cb.normalColor = Color.red;
cb.highlightedColor = Color.green;
cb.pressedColor = Color.blue;
cb.disabledColor = Color.black;
button.colors = cb
}
要改顏色得這樣寫


      當我們在制作一些特殊的面板時,有時會通過一個按鈕來控制面板的顯示與隱藏,同時又要按鈕的背景圖片能夠表明當前面板的顯示狀態時,這就涉及到動態的改變Button的背景圖片了。

       先呈上demo圖片:

       面板隱藏時的圖片,其中的紫色區域即為一個面板,露出一部分是為了提示玩家,而紅色三角形即為按鈕背景,三角形朝下,表示面板隱藏

        面板顯示時的圖片,紫色區域即為面板部分,三角形朝上,表示面板顯示

       這是怎么做到的呢?請看下面的代碼:

       代碼一:

[csharp] view plain copy
 
 print?
  1. <span style="font-size:14px;">using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class Status : MonoBehaviour {  
  5.   
  6.     public static bool hide = true;  
  7. }</span>  

       代碼二:

[csharp] view plain copy
 
 print?
  1. <span style="font-size:14px;">using UnityEngine;  
  2. using UnityEngine.UI;  
  3. using System.Collections;  
  4.   
  5. public class DanjiButtonCallback : MonoBehaviour  
  6. {  
  7.     public void Up2Down()  
  8.     {  
  9.         GameObject trans = GameObject.Find("ButtonPanels");  
  10.         GameObject obj = GameObject.Find("Up2down");  
  11.         Button mbtn = obj.GetComponent<Button>();  
  12.         if (Status.hide)  
  13.         {  
  14.             Status.hide = false;  
  15.             mbtn.image.sprite = Resources.Load<Sprite>("2DSprites/buttoncontrol1");  
  16.             trans.transform.position -= new Vector3(0, 40,0);  
  17.         }else  
  18.         {  
  19.             Status.hide = true;  
  20.             mbtn.image.sprite = Resources.Load<Sprite>("2DSprites/buttoncontrol2");  
  21.             trans.transform.position += new Vector3(0, 40, 0);  
  22.         }  
  23.     }  
  24. }</span>  

       代碼一是用於存儲游戲狀態的類Status,其中的靜態變量hide用於表示面板的隱藏與否,代碼二中的“ButtonPanels”表示面板對象,“2DSprites/buttoncontrol1"和”2DSprite/buttoncontrol2"表示兩種狀態下的Button背景圖片,“Up2down"表示控制面板的按鈕,函數Up2Down為按鈕Up2down的回調函數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM