Toggle控件

Toggle(开关)控件用来创建一个开关按钮,跟单选框一样。其返回值为bool类型。

public static bool Toggle (Rect position, bool value, string text);
public static bool Toggle (Rect position, bool value, Texture image);
public static bool Toggle (Rect position, bool value, GUIContent content);
public static bool Toggle (Rect position, bool value, string text, GUIStyle style);
public static bool Toggle (Rect position, bool value, Texture image, GUIStyle style);
public static bool Toggle (Rect position, bool value, GUIContent content, GUIStyle style);
public static bool Toggle (Rect position, int id, bool value, GUIContent content, GUIStyle style);
  • position : Rect —— 该按钮在屏幕上的矩形位置
  • value : boolean —— 该按钮是开或关?
  • text : String —— 按钮显示的文本内容
  • image : Texture —— 按钮显示的图片纹理
  • content : GUIContent —— 按钮的文本、图片和提示信息
  • style : GUIStyle —— 使用的样式。如果不设置,则该控件将使用当前的GUISkin皮肤

返回值:布尔类型——按钮的新值

using UnityEngine;  
using System.Collections;  

public class Toggle : MonoBehaviour {  

    // 制作单项题  

    //问题  
    private string question;  
    //标签信息  
    private string info;  
    //四个Toggle按钮是否按下  
    private bool toggle0 = false;  
    private bool toggle1 = false;  
    private bool toggle2 = false;  
    private bool toggle3 = false;  

    //用来保证只有一个选项被选中  
    private bool[] isChanages = new bool[] {false,false,false,false};  

    void Start ()   
    {  
        //初始化  
        info = "";  
        question = "桌子上原来有12支点燃的蜡烛,先被风吹灭了3根,不久又一阵风吹灭了2根,最后桌子上还剩几根蜡烛呢?";       
    }  

    void OnGUI()  
    {  
        //使用Label来显示问题  
        GUI.Label(new Rect(40,40,300,50),question);  
        //四个选项  
        toggle0 = GUI.Toggle(new Rect(45,100,100,20),toggle0,"  A.  2");  
        toggle1 = GUI.Toggle(new Rect(45,120,100,20),toggle1,"  B.  3");  
        toggle2 = GUI.Toggle(new Rect(45,140,100,20),toggle2,"  C.  5");  
        toggle3 = GUI.Toggle(new Rect(45,160,100,20),toggle3,"  D.  12");  
        //显示答题对错信息  
        GUI.Label(new Rect(40,200,200,20),info);  
        //提交按钮  
        if(GUI.Button(new Rect(100,180,100,20),"提交"))  
        {  
            if(toggle2)  
            {  
                info = "恭喜您答对了!";  
            }  
            else  
            {  
                info = "不好意思,您答错了!";  
            }  
        }  
        //确保只有一个选项被选中  
        //备注:我也就只能想到这么土的方法了,如果大家有好的方法请告诉我,感激不尽!  
        if(GUI.changed)  
        {             
            if(toggle0 && !isChanages[0])  
            {  
                toggle1 = false;  
                toggle2 = false;  
                toggle3 = false;                  
                isChanages = new bool[] {true,false,false,false};  

            }  
            if(toggle1 && !isChanages[1])  
            {  
                toggle0 = false;  
                toggle2 = false;  
                toggle3 = false;  
                isChanages = new bool[] {false,true,false,false};  
            }  
            if(toggle2 && !isChanages[2])  
            {  
                toggle1 = false;  
                toggle0 = false;  
                toggle3 = false;                  
                isChanages = new bool[] {false,false,true,false};  
            }  
            if(toggle3 && !isChanages[3])  
            {  
                toggle1 = false;  
                toggle2 = false;  
                toggle0 = false;                  
                isChanages = new bool[] {false,false,false,true};  
            }             
        }         
    }     
}

results matching ""

    No results matching ""