Odin-Inspector-系列教程—–WrapAttribute
Wrap Attribute:用于大多数原始属性,当值超出定义范围时,可以包装该值。当您需要一个绕圆的值(例如角度)时,请使用此选项。 类似: Mathf.PingPong using Sirenix …
Wrap Attribute:用于大多数原始属性,当值超出定义范围时,可以包装该值。当您需要一个绕圆的值(例如角度)时,请使用此选项。 类似: Mathf.PingPong using Sirenix …
Vertical Group Attribute特性:用于在检查器的垂直组中一起收集属性。它本身并不能做很多事情,但是与其他组(例如 HorizontalGroupAttribute)组合使用可能 …
Value Dropdown Attribute特性用于任何属性,并使用可配置选项创建下拉列表。使用此选项可为用户提供一组特定的选项供您选择。 也就是创建一些特殊的下拉条 这个里面的属性就有点多了,达 …
Validate Input Attribute特性:用于任何属性,并允自定义检查器,灵活实现多种监测规则。使用此选项可强制执行正确的值(提供对应的返回值)。 常规写法,实参输入一个方法的名称,一个对 …
TypeInfoBox特性:将信息框添加到Inspector中类型的最顶部。 使用此选项可将信息框添加到Inspector中类的顶部,而无需同时使用PropertyOrder和OnInspectorG …
Type Filter Attribute特性:对输入的value 进行自定义过滤,只显示需要的类型 完整示例代码 using Sirenix.OdinInspector; using Sirenix …
Toggle Left Attribute特性:用于在一个bool成员变量的label之前绘制一个toggle using Sirenix.OdinInspector; using UnityEngi …
ToggleGroup用于任何字段,并创建一组可切换的选项。使用此选项可以创建可以启用或禁用的选项。 【ToggleGroup】 通过制定一个返回bool值得成员名来控制toggle的开关 ,默认以成 …
Toggle Attribute特性:用于任何一个为bool的属性或者字段,让此bool成员成为一个可以控制开关的toggle 【Toggle 】构造函数传一个类含有的bool成员名称,作为开关的bo …
Title Group Attribute特性:用于提供一个标题Group,将对应的成员划分 【TitleGroup】提供一个主标题,或者可额外提供一个副标题 [TitleGroup(“Ints”)] …
Title Attribute特性:用于在属性上方生成粗体标题。 直接设置标题,或者添加标题和副标题 [Title(“Static title”)] public int C; public int …
Text Area Attribute:Unity自带属性,用于在inspector面板中给字符绘制一个填写区域 using UnityEngine; public class TextAreaAtt …
Table Matrix Attribute特性:用于进一步指定Odin应如何绘制二维数组。 这也是提高满满逼格的特性 官方示例展示 工程示例 【TableMatrix】HorizontalTitle …
Table List Attribute特性:用于在检查器中将列表和数组呈现为表。 【ShowIndexLabels】设置为True,则为每个元素绘制一个标签,其中显示元素的索引。 [TableLis …
TableColumnWidth属性用于进一步自定义使用“ TableListAttribute” 绘制的表中的列的宽度。 【Resizable】 控制是否自动调整大小 using Sirenix.O …
Tab Group Attribute特性:可用于任何属性,并将属性组织到不同的选项卡中。使用它来组织不同的值,以使清洁检查器变得易于使用。 【TabGroup】创建一个选项卡组 并指定选项卡组的名称 …
Suffix Label Attribute:属性在属性的末尾绘制一个标签。用它来传达有关属性的意图。 [SuffixLabel(“Prefab”)] public GameObject GameOb …
Space Attribute:自带属性,用于控制字段与字段在检查器中显示的间隔 using Sirenix.OdinInspector; using UnityEngine; public clas …
Show In Inspector Attribute特性:用于任何成员,并在inspector中显示该值。请记住,ShowInInspector特性不会序列化任何内容; 这意味着您所做的任何更改都不 …
Show In Inline Editors Attribute:用于在Inline中显示对应的属性 using Sirenix.OdinInspector; using UnityEngine; p …
ShowIfGroup允许根据条件显示或隐藏一组属性。该属性是组属性,因此可以与其他组属性组合,甚至可以用于显示或隐藏整个组。 有组准定有层级,先说单层级,指定的名称既是组的名称,也是对应属性的名称, …
Show If Attribute用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。 这个特性的效果主要是当指定条件满足时,显示对应的属性,默认传入的参数为对 …
Odin包含一个Serialization Debugger工具,用于调试查看对应的序列化信息. 如果在Inspector中的字段等序列化信息出现丢失或者不可见等问题,可以使用Serializatio …
Scene Objects Only Attribute特性:用于对象属性,并将属性限制为场景对象,而不是项目资源。如果要确保对象是场景对象而不是项目资产,请使用此选项。 using Sirenix. …
将按钮分组到一个组中,该组将根据可用布局空间的大小来定位和调整按钮的大小。 using Sirenix.OdinInspector; using System.Collections; using S …
Required Attribute特性:用于任何对象属性,如果对应属性没有赋值,则在检查器中出现对应的提示消息。 直接添加特性 [Required] public GameObject MyGame …
ReadOnly特性:用于任何属性,并禁用该属性在检查器中更改。如果要在检查器中查看属性的值,但不希望更改它,请使用此选项。 就是以灰态的形式展示 完整示例代码 using Sirenix.OdinI …
Range Attribute:Unity自带属性,用于给一个数值创建一个滑动控件 using Sirenix.OdinInspector; using UnityEngine; public cla …
Property Tooltip Attribute:可用于任何属性,并在将属性悬停在检查器中时创建工具提示。用它来解释目的或如何使用属性。 using Sirenix.OdinInspector; …
PropertySpace特性:与Unity的现有Space属性具有相同的功能,但可以应用于任何属性而不仅仅是字段 而且还可以控制与前后字段的间距 完整示例代码 using Sirenix.OdinI …
Property Range Attribute:属性创建一个滑块控件,以将属性的值设置在指定范围之间。这等效于Unity的Range属性,但是此属性可以同时应用于字段和属性。 using Siren …
PropertyOrder特性:用于任何属性,并允许对属性进行排序。使用此选项可以定义属性的显示顺序。 完整示例代码 using Sirenix.OdinInspector; using UnityE …
根据属性的值绘制水平进度条。用它来显示计量表以指示存货有多少,或以可视方式指示运行状况栏。(逼格满满) using Sirenix.OdinInspector; using System.Collec …
Preview Field Attribute特性:用于绘制一个方形ObjectField,它呈现UnityEngine.Object类型的预览。此对象字段还添加了对拖放的支持,将对象拖动到另一个方形 …
On Value Changed Attribute:处理属性和字段,并且只要通过检查器更改了值,就会调用指定的函数。 using Sirenix.OdinInspector; using Syste …
On Inspector GUIAttribute:可用于任何属性,只要检查器代码正在运行,它将调用指定的函数。使用它为对象创建自定义检查器GUI。 using Sirenix.OdinInspect …
Odin Static Inspector,一个快速搜索并允许调用相应的静态成员的便捷工具,提高测试效率。 使用起来非常方便,只需要打开Tools/Odin Inspector/Static Insp …
Multi Line Property Attribute特性:用于任何字符串属性。使用此选项允许用户在多行文本框中编辑字符串。 using Sirenix.OdinInspector; using …
Min Value Attribute用于基本字段。它将字段的值限制为最小值。使用此定义字段的最小值。 using Sirenix.OdinInspector; using UnityEngine; …
Min Max Slider Attribute:用于绘制一个特殊的滑块,用户可以用来指定最小值和最大值之间的范围。使用Vector2,其中x为最小值,y为最大值。 using Sirenix.Odi …
Max Value Attribute:用于基本字段。它将字段的值限制为最大值。使用此定义字段的最大值。 using Sirenix.OdinInspector; using UnityEngine; …
List Drawer Settings Attribute 自定义数组或者列表绘制方式 Odin已经重写对应的数组和列表的绘制 [Title("List Basics")] [I …
Label Width Attribute:用于更改属性标签的宽度。 using Sirenix.OdinInspector; using System.Collections; using Syst …
Label Text Attribute:用于更改属性的标签。如果您想要的标签与属性名称不同,请使用此标签。 同样可以通过$特殊符指定某个属性的值作为实参,也已经通过@直接书写表达式 using Si …
Inline Property Attribute:用于将类型的内容放置在标签旁边,而不是呈现在折叠中。 using Sirenix.OdinInspector; using System; usin …
InlineAttribute用于任何属性或字段,其类型继承自UnityEngine.Object。这包括组件和资产等。 【InlineEditorObjectFieldModes.Boxed】属性以 …
Inline Button Attribute特用:用于将一个按钮添加到属性的末尾。 // Inline Buttons: [InlineButton(“A”)] public int InlineB …
Info Box Attribute:可用于任何属性,并在检查器中在属性上方显示一个文本框。使用它来添加注释或警告使用不同的属性。 【InfoBox】添加不同提示类型的文本框 [Title(“Info …
Indent Attribute特性:用于缩进可用于任何属性,并将属性的标签向右移动。使用它可以清楚地组织检查器中的属性。 using Sirenix.OdinInspector; using Sys …
HorizontalGroup特性:用于在检查器中水平分组多个属性。宽度可以指定为百分比或像素。0到1之间的所有值都将视为百分比。如果宽度为0,则会自动调整列的大小。左右边距只能以像素为单位指定。 …
Hide Reference Object Picker Attribute特性:隐藏非Unity序列化引用类型属性上方显示的多态对象选择器。 using Sirenix.OdinInspector; …
Hide Mono Script Attribute特性:用于隐藏Mono脚本在检查器中的显示 [CreateAssetMenu(fileName = “HideMonoScript_Scriptab …
Hide Label Attribute特性:用于任何属性,并在Inspector中中隐藏标签。使用此选项可隐藏Inspector中的属性标签。 也就是把字段的名称隐藏,只留下value 完成示例代码 …
Hide In Tables Attribute特性:用于TableList特性中隐藏对应的属性绘制的Inline using Sirenix.OdinInspector; using System; …
Hide In Prefab Instances Attribute:属性所在的组件在预制体上,且预制体在为instance(在Hierarchy中)时,隐藏属性 using Sirenix.Odin …
Hide In Prefab Assets Attribute:属性所在的组件在预制体上,且预制体在为Asset(在project中)时,隐藏属性 using Sirenix.OdinInspecto …
Hide In Play Mode Attribute:在Play模式下隐藏对应属性 using Sirenix.OdinInspector; using UnityEngine; public cl …
Hide In Non Prefabs Attribute:用于当属性所在的组件在非预制体上面时,则隐藏属性 using Sirenix.OdinInspector; using UnityEngin …
Hide In Inline Editors Attribute特性用于:在属性对象的Inline编辑模式中隐藏不需要绘制的属性 using Sirenix.OdinInspector; using …
Hide In Editor Mode Attribute:用于在editor模式中隐藏指定属性,在play模式中显示 using Sirenix.OdinInspector; using Unity …
Hide If Group Attribute允许根据条件显示或隐藏一组属性。该属性是组属性,因此可以与其他组属性组合,甚至可以用于显示或隐藏整个组 有组准定有层级,先说单层级,指定的名称既是组的名称 …
Hide If Attribute 用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。 传一个属性的名称,此属性的值如果为true或者部位null,则隐藏此属 …
HideDuplicateReferenceBox using Sirenix.OdinInspector; using System.Collections; using System.Collec …
GUIColor Attribute特性:用于任何属性,并更改用于绘制属性的GUI颜色。 绘制颜色提供两种形式,一种为直接填写RGBA [GUIColor(0.3f, 0.8f, 0.8f, 1f)] …
Foldout Group Attribute特性:可用于任何属性,并将属性组织为折叠。使用它来组织属性,并允许用户隐藏当前与他们不相关的属性。 可使用$特殊标识符获取一个成员的值作为Foldout的 …
File Path Attribute特性:用于字符串字段,并为目录路径提供接口。 【FolderPath】 默认情况下,FolderPath提供了一个相对于Unity项目的路径。 // 默认情况下, …
File Path Attribute特性:用于字符串属性,并在Inspector面板对应的属性值旁绘制一个文件夹按钮,便于快读定位文件,并提供文件路径的接口。 【FilePath】直接使用,默认提供 …
Enum Toggle Buttons Attribute特性:在水平按钮组中绘制枚举而不是下拉列表。 枚举多选按钮主要是应用了 System.Flags using Sirenix.OdinInsp …
Enum Paging Attribute特性:用于在检查器中使用下一个和上一个按钮绘制枚举选择器,以便循环访问枚举属性的可用值 【EnumPaging】比较简单,直接使用就好 using Siren …
Enable If Attribute:用于任何属性,并且可以在检查器中启用或禁用该属性。相关属性时,使用此选项可启用属性。 这个特性的效果主要是当指定条件满足时,启用对应的属性,默认传入的参数为对应 …
Enable GUIAttribute特性:可以控制只有Get的属性,在Inspector中是否为可灰态的(但是依然不可编辑),不写则默认为灰态。 完整示例代码 using Sirenix.OdinI …
Draw With Unity Attribute特性:可以将DrawWithUnity应用于字段或属性,以使Odin使用Unity的旧绘图系统对其进行绘制。如果 使用一些优先级比DrawWithUn …
DisplayAsString特性:用于任何属性,对应的值在检查器中以文本形式显示字符串。如果属性的值要在检查器中显示字符串,但不允许进行任何编辑,请使用此选项。 【DisplayAsString】直 …
Disable In Prefabs Attribute:用于当所在的属性的组件在预制体上时,禁用组件 using Sirenix.OdinInspector; using UnityEngine; …
Disable In Prefab Instances Attribute:用于当属性所在的组件在预制体上且预制体在Hierarchy(实例)中时,禁用属性 using Sirenix.OdinIns …
Disable In Prefab Assets Attribute:用于当属性所在的组件是预制体,且预制体在Asset中时禁用属性 using Sirenix.OdinInspector; usin …
Disable In Play Mode Attribute:在play模式下灰态指定属性,editor模式下显示 using Sirenix.OdinInspector; using UnityEn …
Disable In Non Prefabs Attribute:用于当属性所在的组件在非预制体上面时,禁用对应的属性 using Sirenix.OdinInspector; using Unity …
Disable In Inline Editors Attribute:用于在Inline中禁用(灰态)对应的属性 public class DisableInInlineEditorsAttribu …
Disable In Editor Mode Attribute:可用于任何属性,并且在不处于播放模式时会禁用该属性。仅在播放模式下希望属性可编辑时,请使用此选项。 using Sirenix.Odi …
Disable If Attribute:用于任何属性,并且可以在检查器中启用或禁用该属性。相关属性时,使用此选项可禁用属性。 这个特性的效果主要是当指定条件满足时,灰态对应的属性,默认传入的参数为对 …
Disable Context Menu Attribute:可用于任何属性,并禁用该属性的上下文菜单。如果您不希望属性使用上下文菜单,请使用此选项。 using Sirenix.OdinInspec …
Dictionary Drawer Settings 自定义字典绘制方式 默认以左侧为key,右侧为value 的形式展示,如果需要进行序列化,需要继承自SerializedMonoBehaviour …
Detailed Info Box Attribute特性: 在Inspector面板中绘制一个信息面板,添加对应标题和详细信息描述,点击时可以显示出对应填写的详细信息 不同形式的消息框 [Detai …
Delayed Property Attribute:此特性会延迟在editor中的序列化操作 即时性(非延迟)序列化 [OnValueChanged(“ValueChangeCallBack”)] …
Custom Value Drawer Attribute 特性,允许用户自定义一个绘制方法,字段将以自定的绘制方式展示在Inspector中,非常灵活。 含有Label和不含有Label的字段 [C …
Custom Context Menu Attribute:可用于任何属性,并将自定义选项添加到属性的上下文菜单。当您要将自定义操作添加到属性的上下文菜单时,请使用此选项。 using Sirenix …
Color Palette Attribute:于任何Color属性,并允许从不同的可定义调色板中选择颜色。使用此选项允许用户从一组预定义的颜色选项中进行选择。 【ColorPalette】使用这个特 …
用于Components和GameObject字段,并将在对象字段旁边添加一个小按钮,该按钮将在所有子游戏对象中搜索可分配对象,并将其显示在下拉列表中供用户选择。 【ChildGameObjectsO …
Button Group Attribute 特性:用于可用于任何实例函数,并将按钮添加到组织为水平组的检查器中。使用此按钮可以将多个按钮组织在一个整齐的水平组中。 using Sirenix.Odi …
Button Attribute特性:用于为一个方法在检查器中绘制一个触发该方法的功能按钮 【Button】在检查器上绘制哥哥按钮,如果含有参数,默认以折页的方式展示 [Button] private …
Box Group Attribute特性:可用于任何属性,并将该属性组织在一个装箱的组中。使用它可以在检查器中清晰地组织相关值。 【Box Group】将一些属性装入同一个group中 [BoxGr …
前言:在上一章节中笔者讲解了Odin Inspector 系列教程 — 初识Odin序列化,Odin是通过继承SerializedMonoBehaviour等类来达到序列化的效果,这次笔者 …
本章简述如何基于Odin制作可绘制的特性 本示例是在一个属性上面添加一个自定义特性,然后这个属性会基于这个特性按照我们定于的效果绘制。 创建一个我们示例类 // 演示如何为属性创建自定义drawer的 …
前言:前一阵子笔者写了验证器入门指南和 验证器配置文件设置与使用 这次笔者将介绍自定义全局类型验证和自定义特性验证,有了它将极大限度的扩展你的检测范围,让项目中各种不符合规则的类型赋值无所遁藏,只需要 …
本次讲解的是对应我们自己编写的类或者结构体,按照需求自定义Drawer的简单示例 Value Drawer是Odin最基本的Drawer型,通常是最终在检查员中完成属性最终绘制的绘制。因此,它们通常位 …
前言:在项目中,我们总会在组件或者Scriptable Objects中填写一些我们需要的字段,但是随着项目进度的不断进展,当时可能临时填写、不符合规则的字段会被遗弃在角落。这就成了一个定时炸弹,可能 …
前言:笔者在上一篇文章何为验证器Validator中简述了验证器的操作相关,这篇文章介绍验证器配置文件的使用和相关设置 在第一次打开验证器的时候会看到初始的五个配置,选择对应的扫描文件进行扫描,就可以 …
这次笔者介绍Odin-Serializer来进行游戏中的数据序列化与反序列化,做了一个类似PlayerPrefs的简单示例方便大家参考 虽然Odin-Serializer也可进行Unity Objec …
前言,在Unity开发中,一些挂在物体上的脚本公开的成员变量,可通过inspector面板更改对应的值,但并不是所有公开成员的值,都可以通过inspector面板进行填写,而且有些数值即使填写,也保存 …