我知道这可能被问了很多次......但它经常被错误地回答。
我想要的是:
在 Inspector(例如图 2 和图 3)和 ProjectView(例如图 1)中为特定组件/脚本使用自定义图标
到目前为止我所做的:
对于每个应具有图标的组件/类,我在文件夹中有一个 accroding Icon 文件
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 所示(如本文或此处,甚至Unity-Assign Icons所建议的那样)或使用OnDrawGizmos或DrawGizmo。使用我当前对文件夹使用的方法不会发生这种情况Gizmos
!
更新
因为这是在这个答案中建议的:我也知道我可以这样做并通过Gizmos
SceneView 的设置将它们关闭。但是想象一下,我有 25 个不同的模块和每个不同的图标。我不想在每个项目的基础上一个一个地在 SceneView 设置中禁用他们的 Gizmo!甚至提供的脚本似乎也是一个巨大的hackaround。反思将是我最后的手段。此外,我宁愿根本不让这些图标显示为可能的 Gizmo,而不是全部禁用它们。