当前位置:网站首页>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
Popup
Open Explorer
After selecting the file, you can see that the path has been saved
Reference article :https://blog.csdn.net/qq_42139931/article/details/123206376
Reference article :https://wenku.baidu.com/view/1b41bac9561810a6f524ccbff121dd36a32dc422.html
边栏推荐
- How can the old version of commonly used SQL be migrated to the new version?
- Responsive mobile web test questions
- Pangu open source: multi support and promotion, the wave of chip industry
- 提升复杂场景三维重建精度 | 基于PaddleSeg分割无人机遥感影像
- Redis - detailed explanation of cache avalanche, cache penetration and cache breakdown
- Chapter 1 programming problems
- [network data transmission] FPGA based development of 100M / Gigabit UDP packet sending and receiving system, PC to FPGA
- Zephyr 学习笔记1,threads
- How to buy financial products in 2022?
- flask-sqlalchemy 循环引用
猜你喜欢
大厂技术专家:架构设计中常用的思维模型
Technical experts from large factories: common thinking models in architecture design
[Valentine's day] - you can change your love and write down your lover's name
[kubernetes series] kubesphere is installed on kubernetes
NLP literature reading summary
Master-slave replication principle of MySQL database
Recursive Fusion and Deformable Spatiotemporal Attention for Video Compression Artifact Reduction
MySQL storage engine
Zephyr 学习笔记2,Scheduling
【森城市】GIS数据漫谈(一)
随机推荐
[FreeRTOS] FreeRTOS learning notes (7) - handwritten FreeRTOS two-way linked list / source code analysis
Selection (023) - what are the three stages of event propagation?
【森城市】GIS数据漫谈(一)
The cloud native programming challenge ended, and Alibaba cloud launched the first white paper on application liveliness technology in the field of cloud native
Introduction to spark core components
Summary of MySQL common judgment functions!! Have you used it
同一个job有两个source就报其中一个数据库找不到,有大佬回答下吗
【FPGA教程案例8】基于verilog的分频器设计与实现
Redis - detailed explanation of cache avalanche, cache penetration and cache breakdown
NLP-文献阅读总结
[freertos] freertos Learning notes (7) - written freertos bidirectionnel Link LIST / source analysis
The final week, I split
Paddleocr prompt error: can not import AVX core while this file exists: xxx\paddle\fluid\core_ avx
flask-sqlalchemy 循环引用
Status of the thread
The most effective futures trend strategy: futures reverse merchandising
Review of enterprise security incidents: how can enterprises do a good job in preventing source code leakage?
Redis interview question set
Rhcsa the next day
ABCD four sequential execution methods, extended application