精华内容
下载资源
问答
  • Unity3D之Toggle实例

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

    2015-12-14 23:46:15
    unity_toggle,模仿toggle的效果来做的一个升级版的界面,功能就跟toggle一样,一个多选框只能选一个的作用,
  • Unity3D之Toggle

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

    Toggle组合按钮(单选框),可以将多个Toggle按钮加入一个组,则他们之间只能有一个处于选中状态(Toggle组合不允许关闭的话)。

    一、Toggle组件:


    Toggle大部分属性等同于Button组件,同为按钮,不同的只是他自带了组合切换功能,当然这些用Button也是可以实现的。

    Is On(选中状态):此Toggle的选中状态,设置或返回为一个bool。

    Toggle Transition(切换过渡)None为无切换过渡,Fade为切换时Graphic所指目标渐隐渐显。

    Group(所属组合):这里指向一个带有Toggle Group组件的任意目标,将此Toggle加入该组合,之后此Toggle便会处于该组合的控制下,同一组合内只能有一个Toggle可处于选中状态,即便是初始时将所有Toggle都开启Is On,之后的选择也会自动保持单一模式。

    On Value Changed(状态改变触发消息):当此Toggle选中状态改变时,触发一次此消息。

    二、Toggle Group组件:


    带有此组件的物体,可以同时管理多个Toggle,将需要被管理的Toggle的Group参数指向此Toggle Group便可。

    Allow Switch Off(是否允许关闭):Toggle Group组默认有且仅有一个Toggle可处于选中状态(其管辖的所有Toggle中),如果勾选此属性,则Toggle Group组的所有Toggle都可同时处于未选中状态。

    实例项目:

     [SerializeField ]
        private GameObject m_WhitePanel, m_RedPanel;
        private Toggle[] gos;
        void Start ()
    {
            gos = GetComponentsInChildren<Toggle>();
            gos[0].onValueChanged .AddListener(OnValueRed);
            gos[1].onValueChanged.AddListener(OnValueWhite);
        }
        void OnValueRed(bool check)
        {
            m_RedPanel.SetActive(check);
            m_WhitePanel .SetActive(!check );
        }
        void OnValueWhite(bool check)
        {
            m_RedPanel.SetActive(!check);
            m_WhitePanel.SetActive(check);
        }



    项目地址:http://download.csdn.net/download/u011480667/9957949

    展开全文
  • Unity中UGUI的Toggle控件

    万次阅读 2017-08-29 19:51:32
    Toggle控件

    Toggle开关:
    这里写图片描述
    当我们创建它后发现它也为一个复合型控件,它有Background与Label两个子控件,而Background控件中还有一个Checkmark子子控件,Background是一个图像控件,而其子控件Checkmark也是一个图像控件,其Label控件是一个文本框,它们与我们所讲的控件是一致的,我们通过改变它们所拥有的属性值,即可改变Toggle的外观,如颜色、字体等等。下面来看看Toggle的一些重要属性。
    这里写图片描述
    Is On:目前是处于开还是关。用鼠标点击那个Toggle按钮,将发现其中的对勾符号会在出现与不出现之间切换,同时与之相对应的,在其Inspector面板中,属性In On后面的对勾也在勾选与不勾选之间切换。
    这里写图片描述
    Graphic:图像。用鼠标点击那个Toggle按钮,其对勾符号会在出现与不出现之间切换,它的原理就是控制那个对勾图像出现与不出现而实现的,这个Graphic就是设置这个属性值的,你可以通过这里写图片描述设置。
    Group:组(单选框功能)。在Hierarchy面板中,选中我们刚才创建的Toggle,然后按键盘Ctrl+D两次,就可复制出两个Toggle了,并在场景视图中拖动它们的位置,使它们都可见,运行,我们将发现这个三个都可选中,即它们是复选框。如果我们把这2个组成一个组,让它们关联,就可做成单选了。从Group属性可看出它需要一个ToggleGroup。我们先在画布上建立一个空对象,
    在其Inspector中单击AddComponent这个按钮,为其添加组件,在弹出的菜单中选择UI,在后续弹出菜单中选择“Toggle Group”,这样我们就为此对象添加了ToggleGroup组件了。
    这里写图片描述
    在Hierarchy中同时选中要成组的那2个Toggle,把已添加了ToggleGroup组件的空物体拖到Inspector的中即可,
    这里写图片描述
    这样我们便把这2个Toggle成组了,于是它们2个就只能单选其中一个了。为了更完美,首先调整空对象的位置与大小,让其包含那2个Toggle控件,然后在Hierarchy中,把2个Toggle选中并拖到空物体中成为子物体,
    这里写图片描述
    这样在逻辑上与外观上均完备,且移动父物体时子物体也会跟着移动。
    这里写图片描述

    展开全文
  • U3D学习入门到高级,UGUI中Toggle的经典分析,经典demo,看这个demo就能掌握Toggle的经典使用,随心自定义Toggle的使用!
  • 参考资料1,里面的 public toggle 不能定义为 toggle 类型 的变量。...https://docs.unity3d.com/ScriptReference/UI.Toggle.html using UnityEngine.UI;//引用 UI // Use this for initialization void Star

    参考资料1,里面的 public toggle

    不能定义为 toggle 类型 的变量。



    https://docs.unity3d.com/ScriptReference/UI.Toggle.html



    using UnityEngine.UI;//引用 UI

      // Use this for initialization
        void Start () {
            head_hair.GetComponent<Toggle>().isOn = false;
        }


    效果如下所示





    参考资料:

    1.

    Unity toggle的使用方法

    2.

    unity UGUI Toggle事件管理

    3.

    4.

    5.

    6.

    展开全文
  • 1.后台数据获取可能会分为好几级,打开关闭想到Toggle会好用点,首先先扩展注册UI事件的脚本 public class EventListenerTrigger :MonoBehaviour, IPointerClickHandler, IPointerDownHandler, ...

    1.后台数据获取可能会分为好几级,打开关闭想到Toggle会好用点,首先先扩展注册UI事件的脚本

    public class EventListenerTrigger :MonoBehaviour,  IPointerClickHandler,
                                        IPointerDownHandler,
                                        IPointerEnterHandler,
                                        IPointerExitHandler,
                                        IPointerUpHandler,
                                        ISelectHandler,
                                        IUpdateSelectedHandler,
                                        IDeselectHandler,
                                        IDragHandler,
                                        IEndDragHandler,
                                        IDropHandler,
                                        IBeginDragHandler,
                                        IScrollHandler,
                                        IMoveHandler {
        public delegate void VoidDelegate(GameObject go,object obj);
        public VoidDelegate onClick;
        public VoidDelegate onDown;
        public VoidDelegate onEnter;
        public VoidDelegate onExit;
        public VoidDelegate onUp;
        public VoidDelegate onSelect;
        public VoidDelegate onUpdateSelect;
        public VoidDelegate onDeSelect;
        public VoidDelegate onDrag;
        public VoidDelegate onDragEnd;
        public VoidDelegate onDrop;
        public VoidDelegate onScroll;
        public VoidDelegate onMove;
        public VoidDelegate onBeginDrag;
        public VoidDelegate ToggleEvent;
        ScrollRect scrollRect;
        Toggle tg;
        object obj;
        bool isDrag = false;
        void Start () {
            scrollRect= GetParentScrollRect(transform);
            tg = GetComponent<Toggle>();
            if (tg)
            {
                tg.onValueChanged.AddListener((isOn) => {
                    if (ToggleEvent!=null)
                    {
                        ToggleEvent(tg.gameObject, obj);
                    }
                   
                });
            }
        }
    
        ScrollRect GetParentScrollRect(Transform trf)
        {
            ScrollRect sr=null;
            if (trf.parent!=null)
            {
                sr = trf.parent.GetComponent<ScrollRect>();
                if (sr == null)
                {
                    sr = GetParentScrollRect(trf.parent);
                }
            }
            return sr;
        }
        public void OnPointerClick(PointerEventData eventData) {
            if (isDrag)
            {
                return;
            }
            if (onClick!=null) {
                onClick(gameObject, obj);
            }
            
        }
    
        public void OnPointerDown(PointerEventData eventData) {
            if (onDown!=null) {
                onDown(gameObject, obj);
            }
        }
    
        public void OnPointerEnter(PointerEventData eventData) {
            if (onEnter!=null) {
                onEnter(gameObject, obj);
            }
        }
    
        public void OnPointerExit(PointerEventData eventData) {
            if (onExit!=null) {
                onExit(gameObject, obj);
            }
        }
    
        public void OnPointerUp(PointerEventData eventData) {
            if (onUp!=null) {
                onUp(gameObject, obj);
            }
        }
    
        public void OnSelect(BaseEventData eventData) {
            if (onSelect!=null) {
                onSelect(gameObject, obj);
            }
        }
    
        public void OnUpdateSelected(BaseEventData eventData) {
            if (onUpdateSelect!=null) {
                onUpdateSelect(gameObject, obj);
            }
        }
    
        public void OnDeselect(BaseEventData eventData) {
            if (onDeSelect!=null) {
                onDeSelect(gameObject, obj);
            }
        }
    
        public void OnDrag(PointerEventData eventData) {
            if (scrollRect) {
                scrollRect.OnDrag(eventData);
            }
            isDrag = true;
            if (onDrag != null) {
                onDrag(gameObject, obj);
            }
        }
    
        public void OnEndDrag(PointerEventData eventData) {
            if (scrollRect) {
                scrollRect.OnEndDrag(eventData);
            }
            isDrag = false; 
            if (onDragEnd != null) {
                onDragEnd(gameObject, obj);
            }
        }
    
        public void OnDrop(PointerEventData eventData) {
            if (onDrag != null) {
                onDrag(gameObject, obj);
            }
        }
    
        public void OnBeginDrag(PointerEventData eventData) {
            if (scrollRect) {
                scrollRect.OnBeginDrag(eventData);
            }
            if (onBeginDrag != null) {
                onBeginDrag(gameObject, obj);
            }
        }
    
        public void OnScroll(PointerEventData eventData) {
            if (onScroll!=null) {
                onScroll(gameObject, obj);
            }
        }
    
        public void OnMove(AxisEventData eventData) {
            if (onMove!=null) {
                onMove(gameObject, obj);
            }
        }
        public static EventListenerTrigger Get(GameObject go,object obj = null) {
            EventListenerTrigger listener = go.GetComponent<EventListenerTrigger>() ?? go.AddComponent<EventListenerTrigger>();
            listener.obj = obj;
            return listener;
        }
    }
    
    

    添加一个ToggleEvent事件,然后注册toggle的onValueChanged事件,然后就可以注册ToggleEvent事件监听toggle消息。
    2.生成方法,用下面直接生成一个列表

      public static Transform Spawn(GameObject item, Transform parent)
            {
                Transform temp = null;
                temp = MonoBehaviour.Instantiate<Transform>(item.transform);
                temp.transform.SetParent(parent);
                temp.localPosition = Vector3.zero;
                temp.localScale = Vector3.one;
                temp.gameObject.SetActive(true);
                return temp;
            }
            public static List<GameObject> Spawn<T>(GameObject item, Transform parent, List<T> Data, Action<GameObject, T> dataInitAction = null)
            {
                List<GameObject> temp = new List<GameObject>();
                for (int i = 0; i < Data.Count; i++)
                {
                    Transform go = Spawn(item, parent);
                    dataInitAction?.Invoke(go.gameObject, Data[i]);
                    temp.Add(go.gameObject);
                }
                return temp;
            }
    

    3.生成实例

    
        void SetItemList(List<FirstData> data)
        {
            if (itemList == null || itemList.Count <= 0)
            {
                if (data != null)
                {
                    itemList = CommonFunc.Spawn<FirstData>(item, itemParent, data, (go, dt) =>
                    {
    
                        SetItem(go, dt);
                    });
                }
            }
            else
            {
                if (data == null || data.Count <= 0)
                {
                    for (int i = 0; i < itemList.Count; i++)
                    {
                        itemList[i].SetActive(false);
                    }
                }
                else
                {
                    if (data.Count <= itemList.Count)
                    {
                        for (int i = 0; i < data.Count; i++)
                        {
                            SetItem(itemList[i], data[i]);
                        }
                        for (int i = data.Count; i < itemList.Count; i++)
                        {
                            itemList[i].SetActive(false);
                        }
                    }
                    else
                    {
                        for (int i = 0; i < itemList.Count; i++)
                        {
                            SetItem(itemList[i], data[i]);
                        }
                        List<GameObject> temp = new List<GameObject>();
                        for (int i = itemList.Count; i < data.Count; i++)
                        {
                            Transform go = CommonFunc.Spawn(item, itemParent);
                            SetItem(go.gameObject, data[i]);
                            temp.Add(go.gameObject);
                        }
                        itemList.AddRange(temp);
                    }
                }
            }
    
        }
    
        void SetItem(GameObject go, SecondData data)
        {
            go.SetActive(true);
            Toggle tg = go.GetComponent<Toggle>() ?? go.AddComponent<Toggle>();
            tg.group = tgGroup1;
            tg.isOn = false;
    
            EventListenerTrigger.Get(tg.gameObject, data).ToggleEvent += SetEffect;
    
            // EventListenerTrigger.Get(go, data).onClick += OpenSecond;
            if (detailData != null)
            {
                SetSecondItemList(go, detailData);
            }
    
        }
        GameObject lastItem;
        private void SetEffect(GameObject go, object obj)
        {
            CourseDetailInfoData data = (CourseDetailInfoData)obj;
            bool isOn = go.GetComponent<Toggle>().isOn;
            if (isOn)
            {
                if (go==lastItem)
                {
                    itemParent.GetComponent<Toggle>().isOn = true;
                    return;
                }
                lastItem = go;
            }
            go.GetComponentInChildren<Text>().color = isOn ? col1 : Color.white;
          
     
        }
    
    

    给toggle添加togglegroup后toggle会变成单选,如果需要点击同一个toggle开关,这里取巧的办法是给togglegroup物体也添加toggle,判断点击同一个物体后,将togglegroup的toggle设置为true则能达到想要的效果

    展开全文
  • UnityGUI系统之Toggle、Scrollbar

    千次阅读 2016-09-23 00:23:23
    一、Toggle1、Toggle组件是一个开关组件,通常用于控制声音的开关,背包系统等,关卡难度的选择等。2、Toggle组件的基本组成: Background :指定控件的背景颜色 Checkmark :勾选的图形背景的颜色 Label :控件的...
  • toggle来控制按钮的显示与隐藏 编辑器扩展参考链接 using UnityEditor; using UnityEngine; [CustomEditor(typeof(Test))] public class Tools:Editor { bool show = true; public override void ...
  • unity_shader 之实现Toggle的方法

    千次阅读 2019-06-11 23:10:06
    shader实现Toggle的方法 【步骤】 1Properties 加[MaterialToggle]_toggle("_toggle",int) = 0 或者[Toggle]_toggle("_toggle",int) = 0 2 定义 bool _toggle; 3 使用 if(_toggle) //do 【具体代码】 ...
  • Unity Toggle多选一

    2021-02-16 23:20:38
    Unity toggle多选一 通过toggle实现一个单选是很简单的,主要难点是如何实现多选一。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class GUIpicture : MonoBehaviour {...
  • unity UGUI toggle监听

    2019-08-23 10:36:02
    一直以为下面代码是监听toggle点击的。。。其实不是,他是用来监听 ison 的改变的,真的好坑。。 Toggle.onValueChanged.AddListener((bool value) =>...void resultToggleChange(Toggle toggle, bool value){} ...
  • Unity 3D UGUI Toggle用法教程

    万次阅读 2018-05-11 23:41:05
    Unity 3D UGUI Toggle用法教程 UGUI Toggle用法教程 Chinar-本文提供全流程,中文翻译。 由此: Toggle 组件诞生了,方便且简单的解决了上述问题 用法上和 Button 几乎没有区别,且动态的了模拟现实中开关按钮,为...
  • Unity中会使用toggle进行答题选择等操作,有时候toggle 组非常多就可以通过监听事件来实现判断选中的内容。 单个toggle using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { ...
  • UnityToggleToggleGroup使用

    千次阅读 2020-08-29 20:57:14
    UnityToggleToggleGroup使用Toggle属性TransitionNavigationIs OnToggle TransitionGraphicGroupOn Value Changed(Boolean)自带Toggle说明代码设置与判定Toggle Group绑定事件 Toggle属性 Transition None:无...
  • unity3D Toggle Group 控制

    2020-11-29 21:38:33
    using UnityEngine; public class ToggleScript : MonoBehaviour { public CanvasGroup canvasGroup1; public CanvasGroup canvasGroup2; public CanvasGroup canvasGroup3;... public bool isActive1 = false;...
  • Unity ToggleGroup 获取选中的toggle

    千次阅读 2021-03-10 11:05:17
    void Start() ...Toggle> toggleList = new List<Toggle>(transform.GetComponentsInChildren<Toggle>()); foreach (Toggle item in toggleList) { item.onValueChanged.AddListener(...
  • 单个toggle的话,Background和Checkmark...我需要做一个toggle group,里面有三个按钮,不允许switch off,被单击到的按钮会切换到高亮的图,按照单个toggle的做法的话,就失效了,有人知道为什么吗?或者该怎么做?
  • Unity Toggle组件踩坑使用笔记

    千次阅读 2021-11-22 19:22:50
    但是这样比较麻烦,而且可能要添加一些属性去控制一些状态,比如当前是否已经选择了等,稍微有点麻烦,因此我们可以使用UGUI中的Toggle组件。 先看一下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...
  • unity ugui Toggle Group用法详解 UGUI Toggle Group用法教程 本文提供全流程,中文翻译。 助力快速理解 UGUI 中 Toggle Group 组件用法 我们在项目开发的时候,有时需要单选按钮 / 多个按钮,但仅保证一个开启 此时...
  • unity中使用 UGUI ToggleToggle Group 做单选列表 1.打开Unity,然后在场景中添加“Canvas”元素 2.在Canvas中添加“Panel” 3.在Panel下添加三个Toggle Toggle中的Is On:默认是否选中 4.在Panel上添加“Toggle...
  • private Toggle toggle; // Use this for initialization void Start () { toggle.onValueChanged.AddListener((bool isOn)=> { OnToggleClick(toggle,isOn); }); } private void OnToggleClick(Togg
  • 今天在用ugui做二级菜单的时候发现一个问题。 问题描述:有AB两组toggle,共用同一...最后找到unity的一个帖子有一位网友提供了一个解决方法,做了一个扩展的toggle,下面是代码,最下面是帖子地址。 using System.Coll
  • Unity——Toggle

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

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

    千次阅读 2019-09-12 18:52:16
    首先肯定创建多个Toggle,然后用Toggle Ground...//找到所有的toggle using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class RemoverLevelInform ...
  • Unity Toggle的勾选关联

    千次阅读 2019-02-28 11:37:59
    Prefab很简单 只是一个总开关和子开关 因为可以多选 所以没有ToggleGroup 以及一个脚本 因为只是做简单的例子 所以数量什么的都写死了 代码: 变量部分 [Header("总开关")] public Toggle allToggle; ...
  • Toggle> toggleGroup = this.transParent.Find("ScrollViewMask").Find("Content").GetComponent<ToggleGroup>().ActiveToggles(); foreach (var toggle in toggleGroup) { debug.log(toggle) } ...
  • Unity 之 UGUI Toggle组件介绍和简例

    千次阅读 2020-02-21 22:07:27
    Unity 之 UGUI Toggle组件介绍和简例

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,840
精华内容 1,536
关键字:

toggleunity