写一个UIToolkit的文章,记录一下UIToolkit的使用方式(一阵时间不用都快忘了),顺便写一个简单的物品编辑器
数据保存为xml,使用LinqToXml,编辑器使用UIToolkit制作
需要UIBuilder插件
1.创建Editor窗口
通过Assets->Create->UIToolkit->Editor Window创建窗口ItemDBEditor(可以只选C#和uxml)
然后通过UIBuilder,做一个简单的窗口
然后修改ItemEditor的代码,将修改一下创建窗口的代码
//这里填工具栏路径
[MenuItem("Editor/ItemDBEditor")]
public static void ShowWindow()
{
ItemDBEditor wnd = GetWindow<ItemDBEditor>();
wnd.titleContent = new GUIContent("ItemDBEditor");
}
private void OnEnable()
{
VisualElement root = rootVisualElement;
//这里填上自己的uxml路径
var xml = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/ItemSystem/ItemDBEditor.uxml");
xml.CloneTree(rootVisualElement);
}
这时候在Unity中通过工具栏Editor->ItemEditor打开编辑器了
2.生成Xml
在这里我主要使用LinqToXml,因为比较方便
首先在编辑器的Toolbar中添加一个ToolbarButton,用来生成Xml文件(当然最初始的文件也可以手动创建)
然后添加代码
private void OnEnable()
{
//...
//为这个Button注册创建xml的事件
ToolbarButton AddXmlButton = root.Q<ToolbarButton>("CreateXml");
AddXmlButton.clicked += () =>
{
string filePath = Application.dataPath + @"/ItemDB.xml";
if (!File.Exists(filePath))
{
//创建XML文档实例
XmlDocument xmlDoc = new XmlDocument();
//创建root节点,也就是最上一层节点
XmlElement xRoot = xmlDoc.CreateElement("ItemDatabase");