Unity编辑器扩展入门篇 - Unity Assets菜单
一个简单的Assets创建菜单按钮

通过使用Unity Editor的API(MenuItem)可以在创建Assets的菜单中添加按钮,用作创建项目中所需的文件或者资源(如ScriptableObject)。
[MenuItem("Assets/Create Test Asset")]
private static void CreateTestAsset()
{Debug.Log("Create Test Asset");
}一个简单的Assets创建子菜单按钮

当需要创建在Create里的子菜单按钮时,添加斜杠即可创建子菜单按钮。
[MenuItem("Assets/Create/Add Test Asset")]
private static void AddTestAsset()
{Debug.Log("Create/Add Test Asset");
}一个简单的Assets可被禁用置灰的菜单按钮
在有些情况下,我们可能需要对菜单的按钮是否可用进行一个判断,如果可用就是可用状态,如果不可用就会有一个置灰状态,这里做一个简单的逻辑。
[MenuItem("Assets/Disable Test Asset")]
private static void DisableAddTestAsset()
{Debug.Log("Disable Test Asset");
}[MenuItem("Assets/Disable Test Asset", true)]
private static bool ValidateDisableAddTestAsset()
{Debug.Log("Validate Disable Test Asset");return Selection.activeObject != null;
}首先需要一个声明这个方法的执行逻辑,也就是DisableAddTestAsset,用来执行这个方法对应的逻辑,此处为打印日志。然后声明另一个验证菜单状态的方法,有一个bool返回值,这里用一个是否选中某一物体(文件夹或者脚本等等),当选中时,则该按钮为激活状态。若未选中,则是非激活状态也就是置灰。

上图为在项目中未选中任何物体,则Disable Test Asset显示为置灰状态,不可用。

上图为选中了某一文件夹,当右键点出菜单时,可以看到Disable Test Asset按钮为可点击状态,点击后会打印代码中对应的日志。

