博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Odin Inspector 系列教程 --- Toggle Group Attribute
阅读量:4147 次
发布时间:2019-05-25

本文共 3079 字,大约阅读时间需要 10 分钟。

ToggleGroup用于任何字段,并创建一组可切换的选项。使用此选项可以创建可以启用或禁用的选项。

7643202-65fb9d9bdd4f2038.png
【ToggleGroup】 通过制定一个返回bool值得成员名来控制toggle的开关 ,默认以成员的名称作为标题显示

注意:此bool 成员不能为static

7643202-9e3f253b961543c9.gif
[ToggleGroup("MyToggle")]    public bool MyToggle;    [ToggleGroup("MyToggle")]    public float A;    [ToggleGroup("MyToggle")]    [HideLabel, Multiline]    public string B;
也可以以制定toggle group的标题,或者通过$特殊标识符引用一个成员的值作为标题
7643202-4b95e09329923468.gif
[ToggleGroup("EnableGroupOne", "$GroupOneTitle")]    public bool EnableGroupOne = true;    [ToggleGroup("EnableGroupOne")]    public string GroupOneTitle = "One";    [ToggleGroup("EnableGroupOne")]    public float GroupOneA;    [ToggleGroup("EnableGroupOne")]    public float GroupOneB;
如果制定的toggle为class结构,需要添加Serializable特性,toggle标题默认为此类的名称,且继承关系的父类结构同样可以绘制在检查器面板上
7643202-9ac83d62b9f03bcd.png
[Toggle("Enabled")]    public MyToggleObject Three = new MyToggleObject();    [Toggle("Enabled")]    public MyToggleA Four = new MyToggleA();    [Toggle("Enabled")]    public MyToggleB Five = new MyToggleB();    [Serializable]    public class MyToggleObject    {        public  bool Enabled;        [HideInInspector]        public string Title;        public int A;        public int B;    }    [Serializable]    public class MyToggleA : MyToggleObject    {        public float C;        public float D;        public float F;    }    [Serializable]    public class MyToggleB : MyToggleObject    {        public string Text;    }

完整示例代码
using Sirenix.OdinInspector;using System;using UnityEngine;public class ToggleGroupAttributeExample : MonoBehaviour{    [ToggleGroup("MyToggle")]    public bool MyToggle;    [ToggleGroup("MyToggle")]    public float A;    [ToggleGroup("MyToggle")]    [HideLabel, Multiline]    public string B;    // Toggle for custom data.    [ToggleGroup("EnableGroupOne", "$GroupOneTitle")]    public bool EnableGroupOne = true;    [ToggleGroup("EnableGroupOne")]    public string GroupOneTitle = "One";    [ToggleGroup("EnableGroupOne")]    public float GroupOneA;    [ToggleGroup("EnableGroupOne")]    public float GroupOneB;    // Toggle for individual objects.    [Toggle("Enabled")]    public MyToggleObject Three = new MyToggleObject();    [Toggle("Enabled")]    public MyToggleA Four = new MyToggleA();    [Toggle("Enabled")]    public MyToggleB Five = new MyToggleB();    public MyToggleC[] ToggleList = new MyToggleC[]    {    new MyToggleC(){ Test = 2f, Enabled = true, },    new MyToggleC(){ Test = 5f, },    new MyToggleC(){ Test = 7f, },    };    [Serializable]    public class MyToggleObject    {        public  bool Enabled;        [HideInInspector]        public string Title;        public int A;        public int B;    }    [Serializable]    public class MyToggleA : MyToggleObject    {        public float C;        public float D;        public float F;    }    [Serializable]    public class MyToggleB : MyToggleObject    {        public string Text;    }    [Serializable]    public class MyToggleC    {        [ToggleGroup("Enabled", "$Label")]        public bool Enabled;        public string Label { get { return this.Test.ToString(); } }        [ToggleGroup("Enabled")]        public float Test;    }}

更多教程内容详见:

转载地址:http://aijti.baihongyu.com/

你可能感兴趣的文章
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
经典shell面试题整理
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
万年历
查看>>
作为码农你希望面试官当场指出你错误么?有面试官这样遭到投诉!
查看>>
好多程序员都认为写ppt是很虚的技能,可事实真的是这样么?
查看>>
如果按照代码行数发薪水会怎样?码农:我能刷到公司破产!
查看>>
程序员失误造成服务停用3小时,只得到半月辞退补偿,发帖喊冤
查看>>
码农:很多人称我“技术”,感觉这是不尊重!纠正无果后果断辞职
查看>>
php程序员看过来,这老外是在吐糟你吗?看看你中了几点!
查看>>
为什么说程序员是“培训班出来的”就是鄙视呢?
查看>>
码农吐糟同事:写代码低调点不行么?空格回车键与你有仇吗?
查看>>
阿里p8程序员四年提交6000次代码的确有功,但一次错误让人唏嘘!
查看>>
一道技术问题引起的遐想,最后得出结论技术的本质是多么的朴实!
查看>>
985硕士:非科班自学编程感觉还不如培训班出来的,硕士白读了?
查看>>