前言
Odin Inspector and Serializer (以下简称Odin Inspector
) 是一个功能丰富的 Unity 插件,它主要提供了更强大、更灵活的 Inspector 面板自定义和序列化解决方案。
安装Odin Inspector
-
导入包(Import the package)
如果您通过编辑器内的 Asset Store 窗口导入,请确保您的 Unity 编辑器已正确登录到 Asset Store 帐户。否则,它将导入之前下载的 Odin 版本。 -
当API更新程序窗口弹出时,点击"I Made a Backup, Go Ahead!"。
-
完成。请注意,如果您之前为我们的 DLL 文件设置了自定义程序集导入设置,则必须再次执行此操作。在大多数情况下,Odin 的导入设置是自动化的。
当Odin完成导入后,您将看到"Getting Started"弹出窗口。入门指南入口如下: Tools > Odin Inspector > Getting Started
。
更新 Odin Inspector
如需要更新 Odin,只需执行相同的过程,Odin 将在导入新版本后自行处理任何必要的升级步骤。
将 Odin 与源代码管理一起使用
Odin与常见的源代码控制系统完全兼容。但是,您可能希望忽略一些事情。
- 如果您正在使用 Odin 的序列化器并且正在构建到 AOT 平台,那么建议忽略
Plugins/Sirenix/Assemblies/AOT
文件夹的内容,因为这可能包含您不想在源代码控制系统中跟踪的 AOT 兼容性生成的.dll。当然,这主要是一个偏好问题。 - Odin 的所有演示都位于 unitypackages 中,因此用户可以随时解压缩它们并将它们本地放在他们的机器上。因此,也无需将解压缩的演示包含在您的存储库中。
如果您的 Unity 项目的根目录中有一个 .gitignore 文件,那么只需添加以下行以忽略上述文件,如果您已将 Odin 从其默认安装位置移出,请记住调整文件路径。
# Ignore the auto-generated AOT compatibility dll.
/Assets/Plugins/Sirenix/Assemblies/AOT/*
# Ignore all unpacked demos.
/Assets/Plugins/Sirenix/Demos/*
# But keep the demo packages themselves.
!/Assets/Plugins/Sirenix/Demos/*.unitypackage
Editor Only模式
如果您只对 Odin 的编辑器功能感兴趣,并且不希望 Odin 序列化器成为您构建的一部分,那么您可以:下载我们预配置的Editor Only模式构建,或导航到 Tools > Odin Inspector > Preferences > Editor Only Mode
,然后从那里启用 Editor Only 模式。
启用Editor Only模式将阻止几乎所有的 Odin 包含在您的构建中。唯一将包含的 Odin 代码是小型 Sirenix.OdinInspector.Attributes 程序集,仅包含属性定义。如果您正在使用 IL2CPP, 在 Unity 的代码剥离步骤中,其中许多属性可能会被删除。
您仍然可以在编辑器中使用 Odin 的序列化系统。Editor Only模式仅确保 Odin 的序列化器不会包含在您的构建中。
将 Odin Inspector 安装为 Unity 包
如果需要,您可以将 Odin 作为 Unity 包安装在项目中。这样做的一些优点是您可以拥有 Odin 仅安装在您计算机上的一个位置,从而减少项目中的混乱。
您可以按照以下步骤通过包管理器成功安装 Odin:
从 GIT 仓库安装 Odin 目前不受官方支持,因为仓库将是只读的,因此程序集升级器不会运行,任何依赖于写入访问权限的 Odin 功能都会中断。
- 在 Assets 文件夹之外的任何地方创建一个文件夹,并在其中创建一个package.json文件:
{
"name": "odininspector",
"displayName": "OdinInspector",
"version": "3.0.6",
"unity": "2018.3",
"keywords": [
],
"category": "Unity"
}
(请记住将版本字段更新为您作为包安装的 Odin 的任何版本。)
2. 复制 Sirenix 文件夹并将其放入其中。
3. 打开包管理器,找到"Add Package From Disk"按钮。(包管理器窗口左上角的加号按钮。)
- 如果您未在Editor Only模式下运行 Odin,请在项目的 Assets 文件夹下创建一个名为 link.xml 的新文件,并将以下内容添加到该文件中:
<linker>
<assembly fullname="Sirenix.OdinInspector.Attributes" preserve="all"/>
<assembly fullname="Sirenix.Serialization.Config" preserve="all"/>
<assembly fullname="Sirenix.Serialization" preserve="all"/>
<assembly fullname="Sirenix.Utilities" preserve="all"/>
<assembly fullname="Sirenix.Serialization.AOTGenerated" preserve="all" ignoreIfMissing="1"/>
</linker>
此步骤将确保 Odin 的程序集不会在 AOT 平台上被 Unity 剥离(剥离会破坏 Odin 的序列化器),这是必要的,因为 Unity 不支持包中的link.xml文件,因此默认情况下会忽略 Odin 包中包含的link.xml文件(请参阅 Unity 的文档)。
以这种方式安装 Odin 时,请记住,使用不同 Unity 版本的不同项目都需要单独的文件夹。
每个 Unity 版本在加载 Odin 包时都会运行程序集升级程序,因此,如果在不同的 Unity 版本之间共享包,这将导致问题。
Odin 模块
在 3.0 中添加到 Odin 的模块系统是一个非常简单、简约的包系统,旨在解决几个问题 Odin 自最初发布以来一直面临的长期挑战。
自发布以来,Odin已经支持了非常广泛的Unity版本,并且一直保持更新以始终支持 已发布的 Unity 最新版本。除此之外,Unity 向基于包的系统的过渡意味着 任何版本的 Odin 都必须与越来越广泛的可能的 Unity 项目设置和版本一起工作并适应它们, 提供不同的包和代码库。
到目前为止,使用某些版本中已有但其他版本中没有的 Unity 功能,或者使用其他版本中的 Unity 功能,需要付出很多努力, 这通常会导致大量使用硬编码反射,其中充斥着错误处理和日志记录。这是必要的 因为没有办法编写直接引用可能不存在的 Unity 功能的代码,也没有开箱即用的功能 有条件地激活或停用使用此类功能的“正常”非反射代码文件的方法。
Odin的核心仍然在这些限制下工作,但对于更大的、独立的系统和组件,我们现在有模块 系统,可以在 Tools > Odin Inspector > Preferences > Modules
下找到。
什么是模块?
模块是一小群文件,它知道它需要运行所需的依赖项,并且可以智能地 提示用户激活它 - 或者可以自动激活它,具体取决于用户的设置 - 当 检测到模块所需的依赖项存在。它还将提示用户停用模块 - 或者再次, 可以自动执行此操作 - 如果应在某个时候删除其依赖项。
因此,模块使我们能够更轻松地为各种 Unity 包或更大的版本依赖功能构建自定义支持 展望未来。作为用户,您对模块的主要体验应该是最小的,您注意到它们的程度取决于您如何注意到它们 配置全局模块设置。
全局模块设置
您可以调整一些全局设置,以确定模块系统在默认情况下的行为方式。
- 模块切换: 此控件控制模块系统切换模块的默认行为。如果设置为 Ask,这是默认设置 设置,然后您将收到一个弹出窗口,询问如果模块可以激活但未激活,或者模块不应该激活该怎么办 已激活,但已激活。如果设置为自动(Automatic),则如果出现以下情况,模块将自动激活和停用,而不会提示 它们的依赖项出现或消失。如果设置为手动(Manual),系统既不会询问您有关切换模块的问题,也不会询问您如何切换模块 它自行切换它们 - 您必须进入每个模块的设置并手动激活或停用它。
- 模块更新: 此控件控制模块系统更新模块的默认行为。如果设置为 Ask,这是默认设置 设置,然后您将收到一个弹出窗口,询问如果模块已激活但已过期该怎么办。如果设置为自动(Automatic),则 模块将自动更新,而不会提示是否有可用更新。如果设置为手动(Manual),则系统不会 询问您有关更新模块的信息,它也不会自行更新它们 - 您必须手动进入每个模块的设置。 决定更新它。
另请注意,每个模块都可以设置为通过更改其激活设置来单独覆盖这些全局设置 介于全局和手动之间。最后,标记为实验性或不稳定的模块永远不会要求自行激活 - 它们 始终选择加入,在所有情况下,您都必须手动激活它们。
Odin Static Inspector
Static Inspector(静态检查器) 允许您选择任何类型,并查看其所有静态成员。您可以检查属性、字段,甚至方法,并完整显示它们的所有参数。您甚至可以按成员类型和名称过滤 Static Inspector 的显示。
如果您是程序员或勇敢的设计师,那么您可能会发现 Static Inspector 在调试和测试期间非常有帮助,因为它将您项目、Unity 和.NET 的整个静态 API 置于您的指尖,无需编码。
相关视频教程
<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="xMSfg4Je-1723396106537" src="https://player.bilibili.com/player.html?aid=250251863"></iframe>【unity教程】世界第一宇宙最强编辑器插件Odin【中文字幕】
标签:教程,设置,Unity,模块,版本,Inspector,Odin From: https://blog.csdn.net/UnityBoy/article/details/141109898