zoukankan      html  css  js  c++  java
  • 【转】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的回调函数

  • 相关阅读:
    分层开发的优势
    分层开发的特点
    三层开发遵循的原则
    为什么需要分层
    什么是JNDI
    为什么需要JavaBean
    连接池中的连接对象是由谁创建的呢?
    什么是连接池技术
    为什么使用连接池?(为什么要使用JNDI)
    Servlet加载
  • 原文地址:https://www.cnblogs.com/mimime/p/6807603.html
Copyright © 2011-2022 走看看