当前位置:网站首页>Unity opens the explorer from the inspector interface, selects and records the file path

Unity opens the explorer from the inspector interface, selects and records the file path

2022-07-04 07:18:00 Unity tool man

stay AvProVideo There are functions in the plug-in , Click the button in the video component to open the Explorer window , Find the target video resource and record the resource path .
After checking, it's not difficult to realize , There are two main points
One is unity The built-in method for opening the Explorer

EditorUtility.OpenFilePanel();

The second is to customize the operation of the editor

Implementation process
Script 1: define window 、 Open Explorer

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()
    {
    
        // Horizontal layout 
        GUILayout.BeginHorizontal();
        {
    
            GUILayout.Label(" route ", GUILayout.Width(50f));
            path = GUILayout.TextField(path);
            if (GUILayout.Button(" Browse ", GUILayout.Width(50f)))
            {
    
            	// You don't need the pop-up window above 
                path = EditorUtility.OpenFilePanel(" It's a success  ୧*□*୨", Application.dataPath, "png");
                _objectBuilderScript.GetComponent<ObjectBuilderScript>().path = path;
            }
        }
        GUILayout.EndHorizontal();
    }
}

Script 2: Operation class

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

Script 3: Override operation class
This script should be placed in Assets/Editor Under the folder

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(" Select picture resources "))
        {
                

            myScript.BuildObject();
        }
    }
}

You can see that we have defined a button
 Insert picture description here
Popup
 Insert picture description here
Open Explorer
 Insert picture description here

After selecting the file, you can see that the path has been saved
 Insert picture description here

 Insert picture description here
Reference article :https://blog.csdn.net/qq_42139931/article/details/123206376
Reference article :https://wenku.baidu.com/view/1b41bac9561810a6f524ccbff121dd36a32dc422.html

原网站

版权声明
本文为[Unity tool man]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/185/202207040713427212.html