精华内容
下载资源
问答
  • unity——toggle

    2015-12-14 23:46:15
    unity_toggle,模仿toggle的效果来做的一个升级版的界面,功能就跟toggle一样,一个多选框只能选一个的作用,
  • 今天在用ugui做二级菜单的时候发现一个问题。 问题描述:有AB两组toggle,共用同一...最后找到unity的一个帖子有一位网友提供了一个解决方法,做了一个扩展的toggle,下面是代码,最下面是帖子地址。 using System.Coll

    今天在用ugui做二级菜单的时候发现一个问题。
    问题描述:有AB两组toggle,共用同一个togglegroup,当A或者B中任意一toggle的isOn=true时,setactive(false)另外一组toggle。常理来讲,如果被false的那组toggle中包含isOn=true的toggle,togglegroup会给他关掉,但实际上并没有。

    最后找到unity的一个帖子有一位网友提供了一个解决方法,做了一个扩展的toggle,下面是代码,最下面是帖子地址。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
     public class ToggleEx : Toggle
        {
            private struct Group
            {
                public HashSet<ToggleEx> onToggles;
                public HashSet<ToggleEx> offToggles;
            }
     
            private static Dictionary<ToggleGroup, Group> __groups;
     
            private bool __isOn;
            private ToggleGroup __group;
     
            protected override void Awake()
            {
                base.Awake();
     
                __isOn = isOn;
     
                ToggleGroup group = base.group;
                if (group != null)
                {
                    __group = group;
     
                    __Add();
                }
     
                if (onValueChanged == null)
                    onValueChanged = new ToggleEvent();
     
                onValueChanged.AddListener(__Update);
            }
     
            protected override void OnEnable()
            {
                if (!__isOn && __group != null)
                {
                    Group group;
                    if (__groups != null && __groups.TryGetValue(__group, out group) && group.onToggles != null)
                    {
                        foreach (ToggleEx toggle in group.onToggles)
                            __group.RegisterToggle(toggle);
                    }
                }
     
                base.OnEnable();
            }
     
            protected override void OnDisable()
            {
                if (__isOn && __group != null)
                {
                    Group group;
                    if (__groups != null && __groups.TryGetValue(__group, out group) && group.offToggles != null)
                    {
                        foreach (ToggleEx toggle in group.offToggles)
                            __group.UnregisterToggle(toggle);
                    }
                }
     
                base.OnDisable();
            }
     
            protected override void OnDestroy()
            {
                __Remove();
     
                base.OnDestroy();
            }
     
            private void __Add()
            {
                if (__group == null)
                    return;
     
                if (__groups == null)
                    __groups = new Dictionary<ToggleGroup, Group>();
     
                Group group;
                __groups.TryGetValue(__group, out group);
     
                if (__isOn)
                {
                    if (group.onToggles == null)
                        group.onToggles = new HashSet<ToggleEx>();
     
                    group.onToggles.Add(this);
     
                    __groups[__group] = group;
                }
                else
                {
                    if (group.offToggles == null)
                        group.offToggles = new HashSet<ToggleEx>();
     
                    group.offToggles.Add(this);
     
                    __groups[__group] = group;
                }
            }
     
            private void __Remove()
            {
                if (__group == null)
                    return;
     
                if (__groups == null)
                    __groups = new Dictionary<ToggleGroup, Group>();
     
                Group group;
                __groups.TryGetValue(__group, out group);
     
                if (__isOn)
                {
                    if (group.onToggles != null)
                        group.onToggles.Remove(this);
     
                    __groups[__group] = group;
                }
                else
                {
                    if (group.offToggles != null)
                        group.offToggles.Remove(this);
     
                    __groups[__group] = group;
                }
            }
     
            private void __Update(bool value)
            {
                __Remove();
     
                __isOn = value;
     
                __group = group;
     
                __Add();
            }
        }
    

    帖子地址,点我访问

    展开全文
  • UnityToggleToggleGroup使用Toggle属性TransitionNavigationIs OnToggle TransitionGraphicGroupOn Value Changed(Boolean)自带Toggle说明代码设置与判定Toggle Group绑定事件 Toggle属性 Transition None:无...

    Toggle属性

    Transition

    None:无
    Color Tint:颜色色彩
        Target Graphic:目标图形
        Normal Color:正常颜色
        Highlighted Color:高亮颜色
        Pressed Color:按下颜色
        Selected Color:选择颜色
        Disabled Color:已禁用颜色
        Color Multiplier:色彩乘数
        Fade Duration:淡化持续时间
    Sprite Swap:精灵交换
        Target Graphic:目标图形
        Highlighted Sprite:高亮精灵
        Pressed Sprite:按下精灵
        Selected Sprite:选择精灵
        Disabled Sprite:已禁用精灵
    Animation:动画
        Normal Trigger:正常触发
        Highlighted Trigger:高亮触发
        Pressed Trigger:按下触发
        Selected Trigger:选择触发
        Disabled Trigger:引禁用触发
        Auto Generate Animation 自动生成动画
    

    Navigation

    导航,选中该按钮后可以用方向键比如WASD以及上下左右按键选择其他按钮,前提是导航目标按钮也开启了导航功能,可通过回车或者空格点击按钮响应点击事件。

    None:无
    Horizontal:水平
    Vertical:垂直
    Automatic:自动
    Explicit:显式
        Select On Up:向上选择
        Select On Down:向下选择
        Select On Left:向左选择
        Select On Right:向右选择
    Visualize:可视化,把按键能够导航到的路径可视化,高亮的黄色箭头为当前按钮可导航到的目标
    

    Is On

    此Toggle是否开启,默认是否被选中。

    Toggle Transition

    切换过渡 None:无,Fade:淡入淡出

    Graphic

    用鼠标点击那个Toggle按钮,其对勾符号会在出现与不出现之间切换,它的原理就是控制那个对勾图像出现与不出现而实现的,这个Graphic就是设置这个属性值的。

    Group

    多个Toggle实现单选框功能:

    为一物体添加ToggleGroup组件,然后将此物体添加到多个Toggle的Group里。

    On Value Changed(Boolean)

    根据布尔值的变化,即是否开启,来实现对应的事件。

    自带Toggle说明

    自带Toggle

    Toggle:空物体,带Toggle组件。
    Background:图片,用作选择框底图。
    Checkmark:图片,用作选择标记,即对勾。
    Label:文本,用于文字说明。

    代码设置与判定

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
     
    public class TestUI : MonoBehaviour
    {
        Toggle toggle;
        void Start()
        {
            toggle = gameObject.GetComponent<Toggle>();
            toggle.isOn = false;
        }
     
        void Update()
        {
            if (toggle.isOn == true)
            {
                Debug.Log("OK");
                toggle.isOn = false;
            }
        }
    }
    

    Toggle Group

    Group

    1. 为Image添加Toggle Group组件。
    2. 将添加了Toggle Group组件的Image分别拖到Toggle1和Toggle2的Group位置。
    3. Toggle1和Toggle2则实现单选效果。

    绑定事件

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
     
    public class TestUI : MonoBehaviour
    {
        Toggle toggle;
        void Start()
        {
            toggle = GameObject.Find("Canvas/Toggle").GetComponent<Toggle>();
        }
     
        public void GetValue(bool b)
        {
            Debug.Log(b);
        }
    }
    

    变化事件

    展开全文
  • Unity3D之Toggle实例

    2017-08-30 22:28:58
    Toggleunity中常用的控件之一, 该项目是Unity3D中的Toggle使用事件的方式控制交互方式,简单实用。
  • Unity Toggle 基础

    千次阅读 2018-02-02 09:53:23
    先看Unity 官方文档对Toggle的解释   ----------------------------------------------------- 接下来是教程,来源:https://www.youtube.com/watch?v=VDGbDBAzDvY --------------------------------------...

    先看Unity 官方文档对Toggle的解释

     

    -----------------------------------------------------

    接下来是教程,来源:https://www.youtube.com/watch?v=VDGbDBAzDvY

    -----------------------------------------------------

    1.将要做什么

    三个Toggle代表Warrior,Mage,Priest。下面一个按钮Creat Class。选择某个toggle后点击按钮会在Console里出现玩家的选择。

     

    2. 基础UI设置

    新建Scene把背景图片拖入场景,新建Toggle。这时候发现Toggle并没有显示在屏幕上,选择Canvas,mode选为Screen- Camera,并把主相机拖进去。Toggle就存在了,但是还是看不到,因为渲染顺序,把背景图片的Order in Layer改成-1(我以为是改Sorting Layer)就可以了。

     

    给Toggle改名为Warrior_Toggle,把toggle下的Label的Text改为Warrior,设置合适的字体。

     

    Duplicate toggle两次拖到合适的位置,改合适的名字和Label。取消这3个toggle的is on(不希望一开始就在选择状态)

     

    Canvas下新建空对象命名为ClassToggles,添加组件Toggle Group,把三个Toggle拖为ClassToggles的子对象,并在Toggle组件里标明是属于哪个ToggleGroup。

     

    Canvas下新建Button命名为SubmitButton,其下的Text内容改为Creat Class。

     

    3.功能实现

    Hierarchy下新建空对象命名为CreateClassManager将用来挂脚本。

    新建脚本命名为CreatClassSystem,打开并编辑。

     

    保存后回到Unity,把CreateClassManager游戏对象拖到Onclick上,方法选择OnSubmit,再把3个Toggle拖进脚本。

     

    完成。

     

    展开全文
  • Unity——Toggle

    2018-11-17 15:06:10
    如果需要在几个选项中只能选中一个,可以添加组件:Toggle Group,使几个Toggle的Group是同一个。 在同一组合内时,只有一个可被选中 On Value Changed()在选中状态变化时调用,如果调用的方法的参数是bool...

    有勾选和不勾选的两种状态。

    1. IsOn被勾选时,这个Toggle默认被勾选。

    2. 如果需要在几个选项中只能选中一个,可以添加组件:Toggle Group,使几个Toggle的Group是同一个。
      在同一组合内时,只有一个可被选中

    3. On Value Changed()在选中状态变化时调用,如果调用的方法的参数是bool类型的,会把此刻Toggle的选中状态(true或false)传递过去
      在这里插入图片描述

    展开全文
  • unity Toggle Groud

    2015-06-30 16:31:52
    Toggle 框 要建一个空物体加上Toggle Groud 组件,然后把Toggle 按钮的组选成该Groud。
  • void Start() ...Toggle> toggleList = new List<Toggle>(transform.GetComponentsInChildren<Toggle>()); foreach (Toggle item in toggleList) { item.onValueChanged.AddListener(...
  • unitytoggle控件

    千次阅读 2018-09-22 11:44:11
    大家好,今天介绍一下toggle,本人是unity新手,欢迎大家拍砖,toggle类似按钮,但是toggle有一个特点,可以成组操作,比如把5个toggle放在一组,点击其中一个,其他的则显示已经转移,那么怎么实现呢,完全不需要...
  • unity UGUI toggle监听

    2019-08-23 10:36:02
    一直以为下面代码是监听toggle点击的。。。其实不是,他是用来监听 ison 的改变的,真的好坑。。 Toggle.onValueChanged.AddListener((bool value) =>...void resultToggleChange(Toggle toggle, bool value){} ...
  • Toggle> toggleGroup = this.transParent.Find("ScrollViewMask").Find("Content").GetComponent<ToggleGroup>().ActiveToggles(); foreach (var toggle in toggleGroup) { debug.log(toggle) } ...
  • toggle开关 两个不同的进行重叠,is on 则是显示Graphic选中的物体,否则显示原来的物体 控制其他物体的显示 设置为单选,加上一个toggle group即可,随便加在toggle的某一个上 将toggle中的on value changed添加到你...
  • Unity UGUI基础之Toggle

    万次阅读 2016-06-24 17:07:55
    Toggle组合按钮(单选框),可以将多个Toggle按钮加入一个组,则他们之间只能有一个处于选中状态(Toggle组合不允许关闭的话)。 一、Toggle组件: Toggle大部分属性等同于Button组件,同为按钮,不同的只是他...
  • Unity3D之Toggle

    千次阅读 2017-08-30 21:58:14
    Toggle组合按钮(单选框),可以将多个Toggle按钮加入一个组,则他们之间只能有一个处于选中状态(Toggle组合不允许关闭的话)。 一、Toggle组件: Toggle大部分属性等同于Button组件,同为按钮,不同的...
  • Unity全选反选Toggle

    2019-06-17 10:06:22
    使用1个button,多个toggle,button控制toggle的全选与反选。 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class AllSelect : MonoBehaviour {...
  • Unity Toggle多选一

    2021-02-16 23:20:38
    Unity toggle多选一 通过toggle实现一个单选是很简单的,主要难点是如何实现多选一。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class GUIpicture : MonoBehaviour {...
  • ToggleGroup挂载脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIChoicePlane : MonoBehaviour { public Toggle Toggle_心理评测;...
  • Unity Toggle 关联动画事件

    千次阅读 2018-04-30 18:30:12
    原因Unity GUI 里的 Button 可以通过更改 Transition 类型为动画来关联动画事件,Toggle 组件也可以,但是这些动画事件不是 Toggle 值变化时的通知事件,所以需要专门的通知动画事件。解决简单的脚本来实现,主要是...
  • Unity 之 UGUI Toggle组件介绍和简例
  • unity UGUI Toggle事件管理

    万次阅读 2016-04-01 11:04:36
    unity ugui toggle的点击事件,需要的可以自己补充
  • unity 监听 toggle 事件

    千次阅读 2018-06-06 10:29:43
    //引用 public Toggle autoBtnToggle;//在start方法里监听 void Start() { autoBtnToggle.onValueChanged.AddListener((bool value) =&gt; OnToggleClick(autoBtnToggle, value )); }public void...
  • 单个toggle的话,Background和Checkmark...我需要做一个toggle group,里面有三个按钮,不允许switch off,被单击到的按钮会切换到高亮的图,按照单个toggle的做法的话,就失效了,有人知道为什么吗?或者该怎么做?
  • unity中使用 UGUI ToggleToggle Group 做单选列表 1.打开Unity,然后在场景中添加“Canvas”元素 2.在Canvas中添加“Panel” 3.在Panel下添加三个Toggle Toggle中的Is On:默认是否选中 4.在Panel上添加“Toggle...
  • Unity 3D UGUI Toggle用法教程

    万次阅读 2018-05-11 23:41:05
    Unity 3D UGUI Toggle用法教程 UGUI Toggle用法教程 Chinar-本文提供全流程,中文翻译。 由此: Toggle 组件诞生了,方便且简单的解决了上述问题 用法上和 Button 几乎没有区别,且动态的了模拟现实中开关按钮,为...
  • toggle下的 Color Tint我改成Sprite Swap, 我有4个toggle如何让 toggle1和 toggle2,点击 toggle4时Sprite Swap没有改变,只有点击toggle3时才会改变。
  • Unity Toggle image button

    千次阅读 2014-04-11 11:36:30
    Toggle按钮,状态1 var content_element_visibility: GUIContent; var style_element_visibility: GUIStyle; style_element_visibility.normal.background = Resources.Load("element-invisible"); ...
  • toggle 如果点击无效 多数是没有在EVENT SYSTEM 中添加script input module 脚本

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 513
精华内容 205
关键字:

toggleunity