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

在AvProVideo插件中有个功能,点击视频组件中的按钮可以打开资源管理器窗口,找到目标视频资源并记录下资源路径。
查了一下实现起来并不难,主要有两点
一个是unity 自带的用于打开资源管理器的方法
1
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 @   哒哒哒~~~  阅读(333)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 我与微信审核的“相爱相杀”看个人小程序副业

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示