Unity 从Inspector界面打开资源管理器选择并记录文件路径

在AvProVideo插件中有个功能,点击视频组件中的按钮可以打开资源管理器窗口,找到目标视频资源并记录下资源路径。
查了一下实现起来并不难,主要有两点
一个是unity 自带的用于打开资源管理器的方法

EditorUtility.OpenFilePanel();

第二个就是自定义编辑器的操作

实现过程
脚本1:定义窗口、打开资源管理器

using UnityEngine;
using UnityEditor;

public class Example : EditorWindow
{
    
    
    static GameObject _objectBuilderScript;
    //[MenuItem("SKFramework/Example")]
    public static void Open(GameObject objectBuilderScript)
    {
    
    
        GetWindow<Example>().Show();
        _objectBuilderScript = objectBuilderScript;
    }

    
    private string path;

    private void OnGUI()
    {
    
    
        //水平布局
        GUILayout.BeginHorizontal();
        {
    
    
            GUILayout.Label("路径", GUILayout.Width(50f));
            path = GUILayout.TextField(path);
            if (GUILayout.Button("浏览", GUILayout.Width(50f)))
            {
    
    
            	//不用上边这个弹窗也可以
                path = EditorUtility.OpenFilePanel("成功啦 ୧☉□☉୨", Application.dataPath, "png");
                _objectBuilderScript.GetComponent<ObjectBuilderScript>().path = path;
            }
        }
        GUILayout.EndHorizontal();
    }
}

脚本2:操作类

using UnityEditor;
using UnityEngine;
public class ObjectBuilderScript : MonoBehaviour
{
    
    
    public  string path;
    
    public void BuildObject()
    {
    
    
        Example.Open(gameObject);
    }   
}

脚本3:重写操作类
这个脚本要放在 Assets/Editor 文件夹下

using UnityEngine;
using UnityEditor;
using System;
[CustomEditor(typeof(ObjectBuilderScript))]
public class ObjectBuilderEditor : Editor
{
    
    
    public override void OnInspectorGUI()
    {
    
    
        string path;
        string FilePath = Environment.CurrentDirectory;
        DrawDefaultInspector();
        ObjectBuilderScript myScript = (ObjectBuilderScript)target;
        if (GUILayout.Button("选择图片资源"))
        {
    
                

            myScript.BuildObject();
        }
    }
}

可以看到我们定义了一个按钮
在这里插入图片描述
弹窗
在这里插入图片描述
打开资源管理器
在这里插入图片描述

选择文件后可以看到路径被保存下来了
在这里插入图片描述

在这里插入图片描述
参考文章:https://blog.csdn.net/qq_42139931/article/details/123206376
参考文章:https://wenku.baidu.com/view/1b41bac9561810a6f524ccbff121dd36a32dc422.html

猜你喜欢

转载自blog.csdn.net/weixin_45023328/article/details/125545673