码迷,mamicode.com
首页 > 其他好文 > 详细

拓展编辑器(四)

时间:2018-10-25 23:14:37      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:float   delegate   script   百度   +=   gui   数据   stat   委托   

拓展布局

using UnityEngine;
using UnityEditor;

public class Script_03
{
    [InitializeOnLoadMethod]
    static void InitializeOnLoadMethod()
    {
        EditorApplication.projectWindowItemOnGUI = delegate (string guid,
              Rect selectionRect)
        {
            //在project视图中选择一个资源
            if (Selection.activeObject && guid == AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath
                (Selection.activeObject)))
            {
                //设置拓展按钮区域
                float width = 50f;
                selectionRect.x += (selectionRect.width - width);
                selectionRect.y += 2f;
                selectionRect.width = width;
                GUI.color = Color.red;
                //点击事件
                if (GUI.Button(selectionRect, "click"))
                {
                    //string[] str = Selection.assetGUIDs;
                    //string path = AssetDatabase.GUIDToAssetPath(str[0]);
            //Debug.LogFormat("路径:{0}", path;              

//Debug.LogFormat("路径:{0}", AssetDatabase.GetAssetPath(Selection.activeObject)); Debug.LogFormat("click:{0}",Selection.activeObject.name); } GUI.color = Color.white; } }; } }

  在方法前面添加[InitializeOnLoadMethhod]表示此方法会在C#代码每次编译完成后首先调用,监听EditorApplication.projectWindowItemOGUI委托,即可使用GUI方法来绘制自定义的UI元素(在这里我们添加了一个按钮)。此外,GUI还提供了丰富的元素接口,可以用来添加文本,图片,滚动条和下拉框等复杂元素。

  在if语句中注释的语句为两种输出所点击文件路径的方法,这样方便在代码获取Assets中的物体时路径的填写。这段代码输出的是点击的物体的名字。

效果如下:

技术分享图片

 

PS:1,资源数据库 (AssetDatabase) 是允许您访问工程中的资源的 API。此外,其提供方法供您查找和加载资源,还可创建、删除和修改资源。Unity 编辑器 (Editor) 在内部使用资源数据库 (AssetDatabase) 追踪资源文件,并维护资源和引用资源的对象之间的关联。资源数据库 (AssetDatabase) 接口仅适用于编辑器,不可用于内置播放器。和所有其他编辑器类一样,其只适用于置于编辑器 (Editor) 文件夹中的脚本。具体用法可以自行百度。

  2,Unity会在首次导入资源文件时生成.meta文件,并和资源文件一起存储在相同的目录中。文件GUID存储于.meta文件中,每个资源的GUID都是唯一的。

   AssetDatabase.AssetPathToGUID(string path)可以获得制定路径的资源的GUID,AssetDatabase.GetAssetPath(Object assetObject)可以获得assetObject的路径。

拓展编辑器(四)

标签:float   delegate   script   百度   +=   gui   数据   stat   委托   

原文地址:https://www.cnblogs.com/llllllvty/p/9853455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!