static void DrawNodeHandle(Node node, GUISkin skin) { #if UNITY_EDITOR if (node != target) { fields = NodeStack.NodeGetAsset(NodeStack.getDefaultNode(node.GetId)); target = node; return; } EffectUtility.FormatLabel(node.Title, skin.GetStyle("HandleLabel1")); EffectUtility.FormatLabel("节点名:", skin.GetStyle("HandleLabel2")); EffectUtility.FormatTextfield(ref node.Title); foreach (FieldInfo field in fields) { var value = field.GetValue(node); EffectUtility.FormatLabel(field.Name, skin.GetStyle("HandleLabel2")); EffectUtility.FormatAssetField(ref value, field.FieldType); field.SetValue(node, value); } #endif }
static void DrawCubeHandle(Cube cube, GUISkin skin) { #if UNITY_EDITOR if (cube != target) { fields = NodeStack.NodeGetAsset(NodeStack.getDefaultNode(cube.GetId)); target = cube; return; } EffectUtility.FormatLabel(cube.Title, skin.GetStyle("HandleLabel1")); EffectUtility.FormatLabel("节点名:", skin.GetStyle("HandleLabel2")); EffectUtility.FormatTextfield(ref cube.Title); EffectUtility.FormatButton("添加组件", () => { cube.Component.Add(0); }); for (int i = 0; i < cube.Component.Count; i++) { GUILayout.BeginHorizontal(); cube.Component[i] = EffectUtility.FormatPopup(cube.Component[i], 140f, NodeStack.MonoComponentsName.ToArray()); int j = i; EffectUtility.FormatButton("除去", () => { cube.Component.RemoveAt(j); }); GUILayout.EndHorizontal(); } foreach (FieldInfo field in fields) { var value = field.GetValue(cube); EffectUtility.FormatLabel(field.Name, skin.GetStyle("HandleLabel2")); EffectUtility.FormatAssetField(ref value, field.FieldType); field.SetValue(cube, value); } #endif }