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

posted @ 2022-06-30 21:05  哒哒哒~~~  阅读(291)  评论(0编辑  收藏  举报