赞
踩
继承关系:
(基类)Object -> ScriptableObject -> EditorWindow -> ScriptableWizard
ScriptableObject:
将数据存储在资源文件中,运行时修改退出也会保存。一般编辑器使用较多。类似通过Serializable + Class + Prefab实现存储数据时候,就可以考虑下能不能用ScriptableObject做成一个真正的资源文件,做法是将继承自ScriptableObject脚本创建为yourselfFileName.asset文件。
优点:
可以保存数据类型多样(int、string、Vector3、GameObject、Transform、Texture等)如关联预设,关联图片等资源数据,而XML、TXT等只能保存(int、string、Vector3 等基本数据类型)。
缺点:
如果配置数据中保存了(GameObject、Texture)等资源数据,当关联的资源被删除时,配置数据将丢失,需要重新将新的资源再次关联到配置数据上。
1.利用继承自ScriptableObject的类创建xxx.assets文件
方法1:
//自定义数据类型在继承自ScriptableObject中使用创建.Asset文件时候,
//该类需要加 Serializable 关键字,不然生成的Asset文件的Inspector面板看不到数据
方法2:
效果图:
加载.asset文件:
EditorWindow 可以结合ScriptableObject使用,在窗口中编辑ScriptableObject创建的.asset数据
展示一个简单的自定义window
//创建嵌套窗口,参数分别为id,大小位置,创建子窗口的组件的函数,标题
显示一个通知如下,移除通知 myWindow.RemoveNotification(); 不手动移除,过几秒也会自己消失。。。
m_notification;
m_notification = EditorGUILayout.TextField(m_notification);
if
(GUILayout.Button(
"显示消息"
))
{
myWindow.ShowNotification(
new
GUIContent(m_notification));
}
}
向其他窗口传递事件(当聚焦到Hierarchy面板时,传递给它一个粘贴的事件)
ScriptableWizard
显示:
//第一个参数是对话框名称,第二个参数是Create按钮的名字,第三个参数是第二个按钮,点击不会关闭窗口
ScriptableWizard.DisplayWizard<CustomScriptableWizard>("自定义一个对话窗口","按钮1","按钮2");
内置函数:
https://blog.csdn.net/liqiangeastsun/article/details/50510615
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。