我的需求是这样的,从资产面板中拖拽一个文件,到某个属性面板框中,然后获取这个文件的路径,赋值给对应的路径变量。
这里感谢魔术师Dix的博文【Unity Editor】实现给属性面板上拖拽赋值资源路径。
根据博文的思路
(1)绘制一个Rect;
(2)鼠标在拖拽中,那么判定是否拖到这个文本框里面了;
(3)拖进来的时候有选中文件,那么就调用API获取路径;
(4)进行赋值操作。
实现了拖拽赋值的功能,具体实现如下:
1.基于的MonoBehaviour的属性脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyData : MonoBehaviour
{
[SerializeField]
public string m_myPath;
public string GetPdfPath()
{
return m_myPath;
}
public void SetPdfPath(string path)
{
m_myPath= path;
}
}
2.重载Editor的脚本BaseDataEditor 实现