本篇博客内容说明
在Project视图中,当用鼠标选择了一个资源后,右下角会出现扩展后的Click按钮,点击这个按钮则会在Console窗口中打印该资源的名字。
1.完成示例截图:
2.脚本示例:
[InitializeOnLoadMethod]//表示此方法会在C#代码每次编译完成之后首先调用
private static void CreateLayout()
{
EditorApplication.projectWindowItemOnGUI = delegate (string guid, Rect selectionRect)
{
//在Project视图中选择一个资源
if (Selection.activeObject && guid == AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(Selection.activeObject)))
{
//设置拓展按钮区域
float width = 50.0f;
selectionRect.x += 80;
selectionRect.y += 0.5f;
selectionRect.width = width;
GUI.color = Color.red;
if (GUI.Button(selectionRect, "Button"))
{
Debug.Log(string.Format("点击了 {0} 物体", Selection.activeGameObject.name));
}
GUI.color = Color.white;
}
};
}
3.综合说明
[InitializeOnLoadMethod]–>表示此方法会在C#代码每次编译完成之后首先调用。
监听EditorApplication.projectWindowItemOnGUI委托,即可使用GUI方法来绘制自定义的UI元素,示例中添加了一个按钮。此外,GUI还提供了丰富的元素接口,可以用来添加文本、图片、滚动条等等。
博客内容来自:宣雨松编著的《Unity3D 游戏开发》(第2版)第三章内容学习总结和摘选,侵删。