没有专门处理UI界面岗位的情况下, 开发者需要自己拼合界面,但是Unity默认的UI创建方式有些不太舒服,需要先Create再选中UI最后才能选中自己想要的UI生成出来,而且创建列表内容较多,没办法直接一眼找到,所以做了一个自定义的UI拖拽,先上示例。
//视频上传维护中。。
核心思路:
1.创建一个单独编辑器面板
2.可自定义配置UI资源,包括自定义的UI界面
3.可通过拖拽的方式生成对应UI
技术点梳理:
1.EditorWindow,用于制作单独编辑器面板
2.DragAndDrop,用于实现核心拖拽功能
API分析:
相关API可以在Unity官方文档中查看,这里只是我的个人理解。
DragAndDrop.StartDrag:
开始拖动操作,在启动拖动之后才有相关的拖拽数据产生,EventType才会触发DragUpdated等与拖拽相关的事件。
DragAndDrop.GetGenericData:
DragAndDrop.SetGenericData:
用于对拖拽数据的赋值和获取。
DragAndDrop.PrepareStartDrag:
清空拖拽数据以及拖拽对象,用于数据初始化。
DragAndDrop.AcceptDrag:
接受拖动操作,相当于一个触发器。
DragAndDrop.visualMode
Unity原生的用于修改拖拽时的鼠标样式。
脚本中并没有写有关于生成的逻辑,只有对数据的储存,操作以及DragAndDrop的逻辑,这是因为在Drag的底层调用了Unity原生的生成逻辑,也就是DragAndDropVisualMode.Copy,猜想这部分的逻辑和对预制体拖拽的逻辑是一套的,目前没有查到相关的信息,大佬可留言指教。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEdito