当前位置: 首页 > news >正文

Unity编辑器-获取Projectwindow中拖拽内容的路径

参考

Unity Editor 实现给属性面板上拖拽赋值资源路径

API

Event
DragAndDrop

示例

Mono脚本

using UnityEngine;
public class TestScene : MonoBehaviour
{[SerializeField] string testName;
}

Editor脚本
重写InspectorGUI,在该函数中通过Event的Type参数获取当前的拖拽类型
拖拽中,如果鼠标指针进入目标区域,修改鼠标指针
拖拽释放,判断鼠标是否在目标区域,如果是,获取拖拽内容的路径
注意:不设置鼠标指针为通用状态无法获取拖拽对象的路径

using UnityEditor;
[CustomEditor(typeof(TestScene))]
public class TestSceneInspector : Editor
{SerializedProperty testName;private void OnEnable(){testName = serializedObject.FindProperty(nameof(testName));}public override void OnInspectorGUI(){serializedObject.Update();EditorGUILayout.PropertyField(testName, new GUIContent("测试"));if (GetDragObjectPathsInProjectWindow(GUILayoutUtility.GetLastRect(), out string[] paths)){if (paths.Length > 0)testName.stringValue = System.IO.Path.GetFileNameWithoutExtension(paths[0]);}serializedObject.ApplyModifiedProperties();}bool GetDragObjectPathsInProjectWindow(Rect targetRect, out string[] paths){//拖拽提示if (Event.current.type == EventType.DragUpdated){Event.current.Use();if (DragObjectInArea(targetRect))DragAndDrop.visualMode = DragAndDropVisualMode.Generic;//鼠标指针修改为通用拖拽模式,设置为该模式该可以获取拖拽对象的路径elseDragAndDrop.visualMode = DragAndDropVisualMode.None;//鼠标指针修改为无指示模式         }//拖拽释放并且在目标区域内if (Event.current.type == EventType.DragPerform && DragObjectInArea(targetRect)){Event.current.Use();paths = DragAndDrop.paths;return true;}else{paths = null;return false;}bool DragObjectInArea(Rect rect){return rect.Contains(Event.current.mousePosition);}}
}

文章转载自:

http://5KjsZ5Jb.pqnps.cn
http://YHqCObmd.pqnps.cn
http://2AnEzScf.pqnps.cn
http://x4U3buie.pqnps.cn
http://oty1qOPG.pqnps.cn
http://2738QLAI.pqnps.cn
http://4wQxEOUi.pqnps.cn
http://JIi8ikRd.pqnps.cn
http://mR0SbIQn.pqnps.cn
http://tqjqdkFU.pqnps.cn
http://7log7GZA.pqnps.cn
http://VvxB6kKC.pqnps.cn
http://eKFVExrn.pqnps.cn
http://RGDDAzLW.pqnps.cn
http://FgtFKL3h.pqnps.cn
http://biW7yvyo.pqnps.cn
http://lzdrH8FG.pqnps.cn
http://y8AuZALT.pqnps.cn
http://0Qx5HFOd.pqnps.cn
http://HDnfOjFk.pqnps.cn
http://bK9xApss.pqnps.cn
http://e5TNxikR.pqnps.cn
http://b91l8xLc.pqnps.cn
http://nRh6Ul72.pqnps.cn
http://6crPA5tr.pqnps.cn
http://0eTyopez.pqnps.cn
http://SMuzPFws.pqnps.cn
http://tZ74by3Q.pqnps.cn
http://xQjlJJ7u.pqnps.cn
http://4TgtZJJd.pqnps.cn
http://www.dtcms.com/a/247420.html

相关文章:

  • 科技新底座揭幕!2025 MWC上海锚定AI+、5G融合、双区创新三大引擎
  • 人工智能时代汽车营销如何创新突破?云徙科技汽车营销智能体助力车企立足数智化转型
  • 从流量到变现:知识IP商业化的底层逻辑|创客匠人解析
  • Nginx 负载均衡、高可用及动静分离
  • RabbitMQ配置镜像
  • 监控视频云解决方案详解
  • vue3 双容器自动扩展布局 根据 内容的多少 动态定义宽度
  • matlab实现非线性Granger因果检验
  • windows使用命令行查看进程信息
  • 【Spring AI】MCP Server实现多实例部署
  • Flutter:步骤条组件
  • Flutter项目编译到鸿蒙模拟器报错
  • Flutter Android打包和发布Build APK
  • 国产数据库StarRocks在数栈轻量化数据开发的全流程实践
  • 【论文解读】OpenR:让大模型“深思熟虑”的开源框架
  • 苹果WWDC 2025 技术趋势分析
  • 【王阳明代数集合论基础】情感分析之句子的基本结构
  • 通过SMS凭据管理系统,实现数据库密码、服务器密码、Token等机密信息的临时授权和安全合规使用
  • 一名高级运维工程师,一台新服务器,安装windows系统后,在网络攻防(护网行动)形式下,应该怎么做安全加固?
  • 中小企业服务器低成本的防勒索工具:RDM防勒索
  • MAC无法 ping 通github 系列主页
  • 自己的电脑搭建外网访问网站服务器的步骤
  • Java SE(13)——工具类
  • 进程控制
  • 扩展模块--QWebEngine功能及架构解析
  • 组件化 websocket
  • 基于Netty的UDPServer端和Client端解决正向隔离网闸数据透传问题
  • 在正则表达式中语法 (?P<名字>内容)
  • 2025.6.12 【校内 NOI 训练赛】记录(集训队互测选做)
  • 计算机视觉与深度学习 | 2024年至2025年图像匹配算法总结(原理,公式,代码,开源链接)