unity EditorWindow通过拖拽获取文件夹或者文件路径

匿名 (未验证) 提交于 2019-12-03 00:22:01

参考:https://blog.csdn.net/lyh916/article/details/45133101
主要就是Event、DragAndDrop的使用了。

void OnGUI()         {             targetGo = (GameObject)EditorGUILayout.ObjectField(targetGo, typeof(GameObject), true);             subPath = targetGo == null ? subPath : targetGo.name;             EditorGUILayout.LabelField(string.Format("保存路径output path:{0}", Path.Combine(path, subPath)));             //获得一个长300的框               Rect rect = EditorGUILayout.GetControlRect(GUILayout.Width(300));             //将上面的框作为文本输入框               path = EditorGUI.TextField(rect, path);             subPath = EditorGUILayout.TextField(subPath);              //如果鼠标正在拖拽中或拖拽结束时,并且鼠标所在位置在文本输入框内               if ((Event.current.type == EventType.DragUpdated               || Event.current.type == EventType.DragExited)               && rect.Contains(Event.current.mousePosition))             {                 //改变鼠标的外表                   DragAndDrop.visualMode = DragAndDropVisualMode.Generic;                 if (DragAndDrop.paths != null && DragAndDrop.paths.Length > 0)                 {                     path = DragAndDrop.paths[0];                 }             }         ……     }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!