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]);//输出拖入的文件或文件夹路径
					}
				}
			}
		}
	}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM