我知道这个问题可能被问过很多次了..但它经常被回答错误。
我想要的是:
Use a custom icon for specific components/scripts in the Inspector (e.g. Figure 2 and Figure 3) and the ProjectView (e.g. Figure 1)
![alt text](https://i.stack.imgur.com/JaTJ5.jpg)
到目前为止我所做的:
对于每个应具有图标的组件/类,我在文件夹中都有一个相应的图标文件
Assets/Gizmos/<Path>/<To>/<Namespace>/<ClassName> icon
并在Import Settigns
set TextureType
to Editor GUI and Legacy GUI
这工作正常..到目前为止,这是我实现这一目标的唯一方法(考虑到以下部分我绝对不想要的).
But
然而,我想知道是否真的没有更好的方法必须为每个脚本都有一个唯一的图标文件。这使得项目/UnityPackage变得不必要的巨大。另外,如果我重命名一个类,我总是必须重命名相应的图标文件......这意味着感觉不对!
大多数 Unity 内置行为和组件都有一个独特的图标。而且来自新 PackageManager 的外部包也有内置图标,有时还有一个Gizmos
文件夹,但它不遵循上述命名规则......所以显然图标是为它们配置的。
因此我的问题是:
有没有更好的方法来为脚本/组件提供这些图标?
最好编写脚本并重复使用一个图标文件,而不是在多个不同名称的文件中使用相同的图标。
和/或还有这些图标是在哪里/如何为来自 PackageManager 的脚本定义的?
!笔记!我绝对不想要的是:
在 SceneView 中也为所有人显示图标GameObjects
连接这些组件(例如图 4)。这是由于通过检查器选择该脚本的图标造成的,如图 5 所示(如始终建议的,例如这个帖子 https://answers.unity.com/questions/32307/how-can-i-change-the-icon-of-a-script-within-the-p.html or here https://stackoverflow.com/questions/25343084/how-to-create-a-script-icon-in-unity3d甚至由Unity - 分配图标 https://docs.unity3d.com/Manual/AssigningIcons.html)或使用OnDrawGizmos https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnDrawGizmos.html or 绘制小工具 https://docs.unity3d.com/ScriptReference/DrawGizmo-ctor.html. 使用我当前使用的方法不会发生这种情况Gizmos
folder!
Update
因为这是在这个答案 https://stackoverflow.com/a/55149774/7111561:我也知道我可以这样做并通过Gizmos
场景视图的设置。But想象一下我有大约 25 个不同的模块,每个模块都有各种不同的图标。我不想在每个项目的 SceneView 设置中一一禁用它们的 Gizmos!即使提供的脚本似乎也是一个巨大的黑客解决方案。反思将是我采取的最后手段。另外,我什至宁愿不让这些图标显示为可能的小发明,而不是将它们全部禁用。