视频:

正文

特性效果预览

新版本Odin提供一个AttributeOverView EditorWindow,专门用于预览各个特性的效果

通过Tools-Odin Inspector-Attribute Overview即可打开:

image-20210411170822269

PropertyTree

一个超级厉害的属性树,可以支持任意类型在任意位置上的序列化显示,例如

1
2
3
TargetData targetData = new TargetData();
PropertyTree tree = PropertyTree.Create(targetData);
tree.Draw(false);

另外也可以参考xNode的EditorWindow中的节点,也是这样实现的:

image-20210411165118218

需要注意的是,这个PropertyTree并不会帮我们永久化数据,虽然他内部使用了SO实现,但是仅仅是内存中的,并不会保存到文件,所以临时的绘制可以用任意类,要求持久化的就必须是继承自SO的类。

OdinEditor

在处理自定义Inspector面板的时候十分方便,base.OnInspectorGUI();就是使用Odin原本的绘制方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[CustomEditor(typeof(XNode.Node), true)]
public class GlobalNodeEditor : OdinEditor
{
public override void OnInspectorGUI()
{
if (GUILayout.Button("Edit graph", GUILayout.Height(40)))
{
SerializedProperty graphProp = serializedObject.FindProperty("graph");
NodeEditorWindow w = NodeEditorWindow.Open(graphProp.objectReferenceValue as XNode.NodeGraph);
w.Home(); // Focus selected node
}
base.OnInspectorGUI();
}
}

其他

  • 注意,组与组之间的嵌套用“/”分割