kingBook

导航

unity EditorWindow拖入文件或文件夹

将脚本放在Assets内的Editor文件夹里。
TestWindow.cs

using UnityEngine;
using UnityEditor;
public class TestWindow:EditorWindow{
	[MenuItem("Tools/TestWindow")]
	static void createTestWindow() {
		var window=EditorWindow.GetWindow<TestWindow>(false,"TestWindow");
		window.minSize=new Vector2(400,400);
		window.Show();
		
	}
	private void OnGUI() {
		if(mouseOverWindow==this){//鼠标位于当前窗口
			if(Event.current.type==EventType.DragUpdated){//拖入窗口未松开鼠标
				DragAndDrop.visualMode=DragAndDropVisualMode.Generic;//改变鼠标外观
			}else if(Event.current.type==EventType.DragExited){//拖入窗口并松开鼠标
				Focus();//获取焦点,使unity置顶(在其他窗口的前面)
				//Rect rect=EditorGUILayout.GetControlRect();
				//rect.Contains(Event.current.mousePosition);//可以使用鼠标位置判断进入指定区域
				if(DragAndDrop.paths!=null){
					int len=DragAndDrop.paths.Length;
					for(int i=0;i<len;i++){
						Debug.Log(DragAndDrop.paths[i]);//输出拖入的文件或文件夹路径
					}
				}
			}
		}
	}
}

posted on 2019-10-22 17:29  kingBook  阅读(1797)  评论(0编辑  收藏  举报