【发布时间】:2018-07-18 08:41:01
【问题描述】:
我知道这可能被问了很多次......但它经常被回答错误。
我想要的是:
在 Inspector(例如图 2 和图 3)和 ProjectView(例如图 1)中为特定组件/脚本使用自定义图标
到目前为止我做了什么:
对于每个应具有图标的组件/类,我在文件夹中都有一个图标文件
Assets/Gizmos/<Path>/<To>/<Namespace>/<ClassName> icon
并在Import Settigns 中将TextureType 设置为Editor GUI and Legacy GUI
这很好......直到现在我才能实现这一目标的唯一方法(记住下面的部分我绝对不想要的)。
但是
但是,我想知道是否真的没有更好的方法让每个脚本都有一个唯一的图标文件。这使得项目/UnityPackage 变得不必要地庞大。另外,如果我重命名一个类,我总是必须重命名相应的图标文件......这意味着感觉不对!
大多数 Unity 内置行为和组件都有一个独特的图标。但来自新 PackageManager 的外部包也有内置图标,有时还有一个 Gizmos 文件夹,但它不遵循上述命名规则......所以显然这个图标是为它们配置的。
因此我的问题是:
有没有更好的方法让这些图标用于脚本/组件?
最好编写脚本并重用一个图标文件,而不是在多个不同名称的文件中使用相同的图标。
和/或还有为来自 PackageManager 的脚本定义的这些图标在哪里/如何定义?
!注意!我绝对不想要的:
还在 SceneView 中为所有附加了这些组件的 GameObjects 显示图标(例如图 4)。这是由于通过 Inspector 选择此脚本的图标,如图 5 所示(始终建议,例如在 this post 或 here 甚至 Unity - Assign Icons 中)或使用 OnDrawGizmos 或 DrawGizmo。 使用我目前对Gizmos 文件夹使用的方法不会发生这种情况!
更新
因为这是在 this answer 中建议的:我也知道我可以这样做并通过 SceneView 的 Gizmos 设置将其关闭。 但是想象一下,我有 25 个不同的模块和每个不同的图标。我不想在每个项目的基础上一个一个地在 SceneView 设置中禁用他们的 Gizmo!甚至提供的脚本似乎也是一个巨大的hackaround。反思将是我最后的手段。此外,我宁愿根本不让这些图标显示为可能的 Gizmo,而不是全部禁用它们。
【问题讨论】:
标签: unity3d customization unity3d-editor unity-editor