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

41 篇文章 3 订阅

参考: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];
                }
            }
        ……
    }
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值