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