zoukankan      html  css  js  c++  java
  • NGUI之Toggle实现单选框

    一:使用步骤——创建一个checkboxes

      1.首先在UI Root下建立一个Sprite,设置一张贴图,当作按钮的背景。

      

      然后为其添加碰撞组件和Toggle组件

      

      2.为第一个Sprite建立一个子Sprite,设置一张图片,当作选中的标识。

      

      将其调整到适当的位置。

      

      3.选择第一个Sprite的UIToggle组件

      

      为State Transition中的Sprite设置对象,即刚才添加的子Sprite。

    以上便创建了一个checkboxes。

    二:创建一个radio button groups

      1.将上面创建的checkboxes复制3个。

      2.将他们三个的UIToggle中的Group属性,都改为同一个数字,但不能是0。

      注意:UIToggle中的Starting State如果勾选的话初始状态则为选择状态。

      

    单选功能是实现了,但是选择其中一个toggle后无法取消选择(比如点击第一次就是选择状态再点一次就是取消选择),不知道是不是我的使用方法不正确~在网上找了也没找到NGUI自带的实现方法,然后就自己写了

    代码如下:

     1 using UnityEngine;
     2 using System.Collections;
     3 
     4 public class toggle : MonoBehaviour
     5 {
     6     UIToggle[] toggles;
     7     int value = 0;  //单选框所代表的的值:1、2、3
     8 
     9     void Awake()
    10     {
    11         toggles = new UIToggle[3];
    12         for (int i = 0; i < 3; i++)
    13         {
    14             toggles[i] = this.transform.Find("Anchor/Panel/CheckBox/Toggle_" + (i+1)).gameObject.GetComponent<UIToggle>();
    15             print(toggles[i].name);
    16 
    17             toggles[i].gameObject.AddComponent<UIEventListener>();
    18             UIEventListener.Get(toggles[i].gameObject).onClick = ButtonClick;
    19         }
    20 
    21     }
    22 
    23     int click1 = 0;
    24     int click2 = 0;
    25     int click3 = 0;
    26 
    27     void ButtonClick(GameObject obj)
    28     {
    29         
    30         string name = obj.name;
    31         switch(name)
    32         {
    33             case "Toggle_1":
    34                 click1++;
    35                 click2 = 0;
    36                 click3 = 0;
    37                 if (click1 % 2 == 0)
    38                 {
    39                     value = 0;
    40                     toggles[0].value = false;
    41                     GameObject sp = toggles[0].transform.FindChild("Checkmark").gameObject;
    42                     sp.SetActive(false);
    43                 }
    44                 else 
    45                 {
    46                     value = 1;
    47                     GameObject sp = toggles[0].transform.FindChild("Checkmark").gameObject;
    48                     sp.SetActive(true);
    49                 }
    50                 break;
    51 
    52             case "Toggle_2":
    53                 click2++;
    54                 click1 = 0;
    55                 click3 = 0;
    56                 if (click2 % 2 == 0)
    57                 {
    58                     value = 0;
    59                     toggles[1].value = false;
    60                     GameObject sp = toggles[1].transform.FindChild("Checkmark").gameObject;
    61                     sp.SetActive(false);
    62                 }
    63                 else
    64                 {
    65                     value = 2;
    66                     GameObject sp = toggles[1].transform.FindChild("Checkmark").gameObject;
    67                     sp.SetActive(true);
    68                 }
    69                 break;
    70 
    71             case "Toggle_3":
    72                 click3++;
    73                 click1 = 0;
    74                 click2 = 0;
    75                 if (click3 % 2 == 0)
    76                 {
    77                     value = 0;
    78                     toggles[2].value = false;
    79                     GameObject sp = toggles[2].transform.FindChild("Checkmark").gameObject;
    80                     sp.SetActive(false);
    81                 }
    82                 else
    83                 {
    84                     value = 3;
    85                     GameObject sp = toggles[2].transform.FindChild("Checkmark").gameObject;
    86                     sp.SetActive(true);
    87                 }
    88                 break;
    89 
    90             default:
    91                 break;
    92         }
    93 
    94         print(value);
    95     }
    96 
    97 }
  • 相关阅读:
    jquery animate()方法 语法
    jquery unload方法 语法
    jquery undelegate()方法 语法
    jquery unbind()方法 语法
    jquery trigger() 方法 语法
    jquery toggle()方法 语法
    jquery change() 函数 语法
    jquery blur()函数 语法
    jquery bind()方法 语法
    jquery checked选择器 语法
  • 原文地址:https://www.cnblogs.com/AaronBlogs/p/6891418.html
Copyright © 2011-2022 走看看