在Unity的API文档中写到,需将Gizmos图标放到Assets/Gizmos下,Gizmos一般都是作为脚本的附件,而放在Assets/Gizmos文件夹中并不好和脚本一起移动,因为Gizmos文件夹又不像Editor以及Pluging被unity所识别,所以有了此问题和解决方案。

实际Icon填写的路径是项目中以Assets文件夹为根的绝对路径,所以以下是成立的。

{{EJS0}}

但由于脚本的位置可能往往不能确定,就需要获取一个脚本所在的文件夹,使用UnityEditor.AssetDatabase

这里稍微说一下AssetDatabase.FindAssets这个方法,要求传入一个filter字符串,除了Asset名之外,还可以增加label与type。

“Ground t:texture2d” 获取一个type为texture2d,名为Ground的Asset。

我们的脚本是继承于MonoBehaviour的,所以type应该为MonoScript

{{EJS1}}