public void BeginConnectionFromInput(EditorField connectionEnd, string connectionInputNodeId) { ConnectionInput = connectionEnd; ConnectionInputNodeId = connectionInputNodeId; currentMode = ControlMode.CreatingConnection; isOutputSocket = false; }
private static void DrawTree(EditorField root, int indent = 0) { TestContext.Error.WriteLine(new string(' ', indent * 3) + root.Name); foreach (var child in root) { DrawTree(child, indent + 1); } }
private IEnumerable <EditorField> AllFields(EditorField root) { yield return(root); foreach (var field in root) { foreach (var childField in AllFields(field)) { yield return(childField); } } }
public static void Open(EditorSession session, EditorField graphField) { var window = GetWindow <BehaviourEditor>(); window.Show(); window.GraphFrame = new BehaviourGraphFrame(); window.GraphFrame.View = new BehaviourEditorView(); window.GraphFrame.View.BeginSession(session, graphField); window.GraphFrame.Window = window; window.GraphFrame.OnEnable(); }
public CSSEditorView() { Field = new EditorField(); Popup = new WarningPopup(); #if __IOS__ lineNumbers = new UIKit.UITextView(); lineNumbers.BackgroundColor = Field.BackgroundColor.ToNativeColor(); Field.OffsetChanged += delegate { lineNumbers.ContentOffset = Field.ContentOffset; }; #endif }
public static void DrawField(EditorField field) { // EditorGUILayout.LabelField(field.Json.Path); if (field.Field.Format == FieldFormat.List) { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); EditorGUI.indentLevel--; fieldFeature.Expanded = EditorGUILayout.Foldout(fieldFeature.Expanded, field.Name, true); EditorGUI.indentLevel++; if (fieldFeature.Expanded) { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); int newSize = EditorGUILayout.DelayedIntField("Size", field.Count); if (EditorGUI.EndChangeCheck()) { field.SetArraySize(newSize); } foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } } else if (field.Field.Format == FieldFormat.Object) { if (field.Field.Type == "Int32") { EditorGUI.BeginChangeCheck(); int newValue = EditorGUILayout.IntField(field.Name, field.GetValue <int>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "String") { EditorGUI.BeginChangeCheck(); string newValue = EditorGUILayout.TextField(field.Name, field.GetValue <string>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "Boolean") { EditorGUI.BeginChangeCheck(); bool newValue = EditorGUILayout.Toggle(field.Name, field.GetValue <bool>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "InputSocket") { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField(field.Name, field.GetValue <LocalPropertyId>().TargetIdentifier.ToString()); var renderPos = GUILayoutUtility.GetLastRect(); fieldFeature.LocalRenderedPosition = renderPos; if (EditorGUI.EndChangeCheck()) { //field.Json.Value = newValue; } // EditorGUI.DrawRect(renderPos, Color.red); } else if (field.Field.Type == "SerializedGraph") { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); if (field.GetValue <SerializedGraph>() == null) { field.SetValue(new SerializedGraph()); field.ApplyModifiedProperties(); } if (GUILayout.Button($"Edit \"{field.Name}\" Graph")) { BehaviourEditor.Open(field.Session, field); } var renderPos = GUILayoutUtility.GetLastRect(); fieldFeature.LocalRenderedPosition = renderPos; } else if (field.Field.Format == FieldFormat.Dictionary) { EditorGUILayout.LabelField(field.Name); EditorGUI.indentLevel++; foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } else { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); EditorGUI.indentLevel--; fieldFeature.Expanded = EditorGUILayout.Foldout(fieldFeature.Expanded, field.Name, true); EditorGUI.indentLevel++; if (fieldFeature.Expanded) { EditorGUI.indentLevel++; foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } } } else { EditorGUILayout.LabelField(field.Name, "Unknown Type"); } }
public static Panel GetEditColumn(string ShowType, Column c, string v) { if (ShowType == EditShowType.Text.ToString()) { TextField field = new TextField(c, v); return(field.Panel); } else if (ShowType == EditShowType.DateTime.ToString()) { DateTimeField field = new DateTimeField(c, v); return(field.Panel); } else if (ShowType == EditShowType.Check.ToString()) { CheckField field = new CheckField(c, v); return(field.Panel); } else if (ShowType == EditShowType.DropDownList.ToString()) { DropDownField field = new DropDownField(c, v); return(field.Panel); } else if (ShowType == EditShowType.CheckList.ToString()) { CheckListField field = new CheckListField(c, v); return(field.Panel); } else if (ShowType == EditShowType.RadioList.ToString()) { RadioListField field = new RadioListField(c, v); return(field.Panel); } else if (ShowType == EditShowType.picUpload.ToString()) { UploadImgField field = new UploadImgField(c, v); return(field.Panel); } else if (ShowType == EditShowType.MultiText.ToString()) { MultiTextField field = new MultiTextField(c, v); return(field.Panel); } else if (ShowType == EditShowType.Editor.ToString()) { EditorField field = new EditorField(c, v); return(field.Panel); } else if (ShowType == EditShowType.docUpload.ToString()) { UploadFileField field = new UploadFileField(c, v); return(field.Panel); } else if (ShowType == EditShowType.Hidden.ToString()) { Panel p = new Panel(); HiddenField field = new HiddenField(); field.ID = c.ColumnName + "_value"; field.Value = v; p.Controls.Add(field); return(p); } else if (ShowType == EditShowType.Template.ToString()) { Page page = HttpContext.Current.Handler as Page; if (page != null) { Control ctrl = page.LoadControl(c.EditTempLate); TemplateFields field = new TemplateFields(c, v, ctrl); return(field.Panel); } else { return(null); } } else { TextField field = new TextField(c, v); return(field.Panel); } }
public void BeginSession(EditorSession session, EditorField graphField) { Session = session; GraphField = graphField; }
public KeyStrokeListener(EditorField view, IInputConnection target) : base(target, true) { this.view = view; }
public void OnGUI() { screenRect = new Rect(0, EditorGUIUtility.singleLineHeight + 1, position.width, position.height - (EditorGUIUtility.singleLineHeight + 1)); currentEvent = Event.current; // HandleDragAndDrop (screenRect); DrawBackground(screenRect, dragging_Position); DrawTopBar(); CurrentPackage = (ProjectImport)EditorGUILayout.ObjectField(CurrentPackage, typeof(ProjectImport), true); var explorer = CurrentPackage.Explorer; foreach (var resource in explorer.Resources) { if (!resource.Name.EndsWith(".bhvr")) { continue; } if (GUILayout.Button(resource.ToString())) { CurrentResource = resource; HasCurrentResource = true; HasEditor = false; } } if (HasCurrentResource && CurrentResource != null) { if (HasEditor == false) { Debug.Log(CurrentResource); var editorTargetData = CurrentResource.LoadStream(); using (var sr = new StreamReader(editorTargetData)) using (var reader = new JsonTextReader(sr)) { editorTarget = JObject.Load(reader); // editorTarget = serializer.Deserialize(reader); } var nodes = NodeManifest.Construct(new Type[] { typeof(AddNode), typeof(RollNode) }); var types = TypeManifest.ConstructBaseTypes(); var manifest = new BehaviourManifest() { Nodes = nodes, Types = types, }; Debug.Log(editorTarget); graphEditor = new EditorSession(manifest, editorTarget, "SerializedGraph"); HasEditor = true; } if (GUILayout.Button("Save")) { using (var file = CurrentResource.WriteStream()) { serializer.Serialize(new JsonTextWriter(file) { Formatting = Formatting.Indented }, editorTarget); } } foreach (var node in graphEditor.Root["Nodes"]) { var nodeEditor = node["Editor"]; var nodeEditorPosition = nodeEditor["Position"]; var nodeRect = new Rect( dragging_Position.x + nodeEditorPosition["x"].GetValue <int>(), dragging_Position.y + nodeEditorPosition["y"].GetValue <int>(), 200, 160 ); bool startDrag = false; if (Event.current.type == EventType.Repaint) { BehaviourGraphResources.Instance.NodeStyle.Draw(nodeRect, false, node.Name == selectedNode, false, false); } GUILayout.BeginArea(nodeRect); var nodeData = node.Json["Data"]; var nodeType = node["Type"]; object fieldObject; if (!node.ViewBag.TryGetValue("Generic", out fieldObject)) { var fieldInformation = new FieldInformation(); fieldInformation.Type = nodeType.Json.ToObject <string>(); fieldObject = new EditorField(graphEditor, nodeData, node.Name, fieldInformation); node.ViewBag["Generic"] = fieldObject; } var field = (EditorField)fieldObject; foreach (var childField in field) { DrawField(childField); } GUILayout.EndArea(); if (Event.current.type == EventType.MouseDown) { if (nodeRect.Contains(Event.current.mousePosition)) { selectedNode = node.Name; dragging_IsDragging = true; dragging_NodeDragging = true; GUI.UnfocusWindow(); GUI.FocusControl(""); Event.current.Use(); } } } foreach (var node in graphEditor.Root["Nodes"]) { var nodeEditor = node["Editor"]; var nodeEditorPosition = nodeEditor["Position"]; var nodePositionX = nodeEditorPosition["x"].GetValue <int>() + dragging_Position.x; var nodePositionY = nodeEditorPosition["y"].GetValue <int>() + dragging_Position.y; var nodeData = node.Json["Data"]; var nodeType = node["Type"]; object fieldObject; if (!node.ViewBag.TryGetValue("Generic", out fieldObject)) { var fieldInformation = new FieldInformation(); fieldInformation.Type = nodeType.Json.ToObject <string>(); fieldObject = new EditorField(graphEditor, nodeData, node.Name, fieldInformation); node.ViewBag["Generic"] = fieldObject; } var field = (EditorField)fieldObject; foreach (var childField in field) { if (childField.Field.Type == "InputSocket") { object renderPosObject; var renderPos = new Rect();; if (childField.ViewBag.TryGetValue("Position", out renderPosObject)) { renderPos = (Rect)renderPosObject; } else { Debug.LogError(childField.Name + " has no position"); } renderPos.x += nodePositionX; renderPos.y += nodePositionY; // EditorGUI.DrawRect(renderPos, Color.red); Vector3 start = new Vector3(renderPos.x, renderPos.y); Vector3 end = new Vector3(renderPos.x - 100, renderPos.y - 100); Vector3 startDir = new Vector3(-1, 0); Vector3 endDir = new Vector3(1, 0); DrawConnection(start, end, startDir, endDir); } } } } HandleInput(); }
public static void DrawField(EditorField field) { // EditorGUILayout.LabelField(field.Json.Path); if (field.Field.Type == "Int32") { EditorGUI.BeginChangeCheck(); int newValue = EditorGUILayout.IntField(field.Name, field.Json.ToObject <int>()); if (EditorGUI.EndChangeCheck()) { var replace = JToken.FromObject(newValue); field.Json.Replace(replace); field.Json = replace; } } else if (field.Field.Type == "String") { EditorGUI.BeginChangeCheck(); string newValue = EditorGUILayout.TextField(field.Name, field.Json.ToObject <string>()); if (EditorGUI.EndChangeCheck()) { var replace = JToken.FromObject(newValue); field.Json.Replace(replace); field.Json = replace; } } else if (field.Field.Type == "Boolean") { EditorGUI.BeginChangeCheck(); bool newValue = EditorGUILayout.Toggle(field.Name, field.Json.ToObject <bool>()); if (EditorGUI.EndChangeCheck()) { var replace = JToken.FromObject(newValue); field.Json.Replace(replace); field.Json = replace; } } else if (field.Field.Type == "InputSocket") { EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField(field.Name, field.Json.ToObject <string>()); var renderPos = GUILayoutUtility.GetLastRect(); field.ViewBag["Position"] = renderPos; if (EditorGUI.EndChangeCheck()) { //field.Json.Value = newValue; } // EditorGUI.DrawRect(renderPos, Color.red); } else if (field.Field.Format == FieldFormat.Dictionary) { EditorGUILayout.LabelField(field.Name); EditorGUI.indentLevel++; foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } else if (field.Field != null) { EditorGUILayout.LabelField(field.Name); EditorGUI.indentLevel++; foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } else { EditorGUILayout.LabelField(field.Name, "Unknown Type"); } }
public static void DrawField(EditorField field) { if (field.Field.Format == FieldFormat.List) { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); var fieldRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); fieldRect.xMin += foldoutIndent; fieldFeature.Expanded = EditorGUI.Foldout(fieldRect, fieldFeature.Expanded, field.Name, true); if (fieldFeature.Expanded) { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); int newSize = EditorGUILayout.DelayedIntField("Size", field.Count); if (EditorGUI.EndChangeCheck()) { field.SetArraySize(newSize); } foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } } else if (field.Field.Format == FieldFormat.Object) { if (field.Field.Type == "Int32") { EditorGUI.BeginChangeCheck(); int newValue = EditorGUILayout.IntField(field.Name, field.GetValue <int>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "Single") { EditorGUI.BeginChangeCheck(); float newValue = EditorGUILayout.FloatField(field.Name, field.GetValue <float>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "Double") { EditorGUI.BeginChangeCheck(); double newValue = EditorGUILayout.DoubleField(field.Name, field.GetValue <double>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "String") { EditorGUI.BeginChangeCheck(); string newValue = EditorGUILayout.TextField(field.Name, field.GetValue <string>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "Boolean") { EditorGUI.BeginChangeCheck(); bool newValue = EditorGUILayout.Toggle(field.Name, field.GetValue <bool>()); if (EditorGUI.EndChangeCheck()) { field.SetValue(newValue); field.ApplyModifiedProperties(); } } else if (field.Field.Type == "InputSocket") { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField(field.Name, field.GetValue <LocalPropertyId>().TargetIdentifier.ToString()); var renderPos = GUILayoutUtility.GetLastRect(); fieldFeature.LocalRenderedPosition = renderPos; if (EditorGUI.EndChangeCheck()) { //field.Json.Value = newValue; } } else if (field.Field.Type == "SerializedGraph") { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); if (field.GetValue <SerializedGraph>() == null) { field.SetValue(new SerializedGraph()); field.ApplyModifiedProperties(); } var fieldRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); fieldRect.xMin += 4; var buttonRect = EditorGUI.PrefixLabel(fieldRect, new GUIContent(field.Name)); buttonRect.width = 160; if (GUI.Button(buttonRect, $"Edit Graph")) { var framedFeature = field.Session.Root.GetFeature <FramedEditorSessionFeature>(); if (framedFeature == null) { BehaviourEditor.Open(field.Session, field); } else { foreach (var virtualTab in framedFeature.Frame.EditorContext.VirtualChildren) { if (virtualTab.Frame is BehaviourGraphFrame graphFrame) { if (graphFrame.View.GraphField == field) { framedFeature.Frame.EditorContext.CurrentTab = virtualTab; } } } } } var renderPos = GUILayoutUtility.GetLastRect(); fieldFeature.LocalRenderedPosition = renderPos; } else if (field.Field.Format == FieldFormat.Dictionary) { EditorGUILayout.LabelField(field.Name); EditorGUI.indentLevel++; foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } else { var fieldFeature = field.GetOrCreateFeature <FieldFeature>(); var fieldRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); fieldRect.xMin += foldoutIndent; GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); fieldFeature.Expanded = EditorGUI.Foldout(fieldRect, fieldFeature.Expanded, field.Name, true); if (fieldFeature.Expanded) { EditorGUI.indentLevel++; foreach (var childField in field) { DrawField(childField); } EditorGUI.indentLevel--; } } } else { EditorGUILayout.LabelField(field.Name, "Unknown Type"); } }
public static void DrawField(EditorField editorField) { var fieldFeature = editorField.GetOrCreateFeature <FieldFeature>(); switch (editorField.Value) { case EditorValue editorValue: { switch (editorField.Field.Type) { case "Int16": { EditorGUI.BeginChangeCheck(); int newValue = EditorGUILayout.IntField(editorField.Field.Name, editorValue.GetValue <short>()); if (EditorGUI.EndChangeCheck()) { editorValue.SetValue((short)newValue); editorValue.ApplyModifiedProperties(); } break; } case "Int32": { EditorGUI.BeginChangeCheck(); int newValue = EditorGUILayout.IntField(editorField.Field.Name, editorValue.GetValue <int>()); if (EditorGUI.EndChangeCheck()) { editorValue.SetValue(newValue); editorValue.ApplyModifiedProperties(); } break; } case "Int64": { EditorGUI.BeginChangeCheck(); long newValue = EditorGUILayout.LongField(editorField.Field.Name, editorValue.GetValue <long>()); if (EditorGUI.EndChangeCheck()) { editorValue.SetValue(newValue); editorValue.ApplyModifiedProperties(); } break; } case "Single": { EditorGUI.BeginChangeCheck(); float newValue = EditorGUILayout.FloatField(editorField.Field.Name, editorValue.GetValue <float>()); if (EditorGUI.EndChangeCheck()) { editorValue.SetValue(newValue); editorValue.ApplyModifiedProperties(); } break; } case "Double": { EditorGUI.BeginChangeCheck(); double newValue = EditorGUILayout.DoubleField(editorField.Field.Name, editorValue.GetValue <double>()); if (EditorGUI.EndChangeCheck()) { editorValue.SetValue(newValue); editorValue.ApplyModifiedProperties(); } break; } case "String": { EditorGUI.BeginChangeCheck(); string newValue = EditorGUILayout.TextField(editorField.Field.Name, editorValue.GetValue <string>()); if (EditorGUI.EndChangeCheck()) { editorValue.SetValue(newValue); editorValue.ApplyModifiedProperties(); } break; } case "Boolean": { EditorGUI.BeginChangeCheck(); bool newValue = EditorGUILayout.Toggle(editorField.Field.Name, editorValue.GetValue <bool>()); if (EditorGUI.EndChangeCheck()) { editorValue.SetValue(newValue); editorValue.ApplyModifiedProperties(); } break; } case "InputSocket": { EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField(editorField.Field.Name, editorValue.GetValue <LocalPropertyId>().TargetIdentifier.ToString()); var renderPos = GUILayoutUtility.GetLastRect(); fieldFeature.LocalRenderedPosition = renderPos; if (EditorGUI.EndChangeCheck()) { //field.Json.Value = newValue; } break; } default: { EditorGUILayout.LabelField($"Unsupported value type {editorField.Field.Type}"); break; } } break; } case EditorObject editorObject: { switch (editorField.Field.Type) { case "SerializedGraph": { /* * if (field.GetValue<SerializedGraph>() == null) * { * field.SetValue(new SerializedGraph()); * field.ApplyModifiedProperties(); * } */ var fieldRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); fieldRect.xMin += 4; var buttonRect = EditorGUI.PrefixLabel(fieldRect, new GUIContent(editorField.Field.Name)); buttonRect.width = 160; if (GUI.Button(buttonRect, $"Edit Graph")) { var framedFeature = editorField.Session.GetFeature <FramedEditorSessionFeature>(); if (framedFeature == null) { BehaviourEditor.Open(editorField.Session, editorObject); } else { foreach (var virtualTab in framedFeature.Frame.EditorContext.VirtualChildren) { if (virtualTab.Frame is BehaviourGraphFrame graphFrame) { if (graphFrame.View.EditorObject == editorObject) { framedFeature.Frame.EditorContext.CurrentTab = virtualTab; } } } } } var renderPos = GUILayoutUtility.GetLastRect(); fieldFeature.LocalRenderedPosition = renderPos; break; } default: { var fieldRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); fieldRect.xMin += foldoutIndent; GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); fieldFeature.Expanded = EditorGUI.Foldout(fieldRect, fieldFeature.Expanded, editorField.Field.Name, true); if (fieldFeature.Expanded) { EditorGUI.indentLevel++; foreach (var childField in editorObject.Fields) { DrawField(childField.Value); } EditorGUI.indentLevel--; } break; } } break; } case EditorDictionary editorDictionary: { var fieldRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); fieldRect.xMin += foldoutIndent; fieldFeature.Expanded = EditorGUI.Foldout(fieldRect, fieldFeature.Expanded, editorField.Field.Name, true); if (fieldFeature.Expanded) { EditorGUI.indentLevel++; foreach (var childField in editorDictionary.KeyValuePairs) { EditorGUILayout.LabelField($"{childField.Key}: {childField.Value}"); // DrawField(childField); } var buttonRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); buttonRect.xMin += foldoutIndent; buttonRect.width = 20; if (GUI.Button(buttonRect, "+")) { editorDictionary.Add("New Element"); } EditorGUI.indentLevel--; } break; } case EditorList editorList: { var fieldRect = GUILayoutUtility.GetRect(0, EditorGUIUtility.singleLineHeight, GUILayout.ExpandWidth(true)); GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); fieldRect.xMin += foldoutIndent; fieldFeature.Expanded = EditorGUI.Foldout(fieldRect, fieldFeature.Expanded, editorField.Field.Name, true); if (fieldFeature.Expanded) { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); int newSize = EditorGUILayout.DelayedIntField("Size", editorList.Elements.Count); if (EditorGUI.EndChangeCheck()) { editorList.SetArraySize(newSize); } for (int i = 0; i < editorList.Elements.Count; i++) { var element = editorList.Elements[i]; // DrawField(element); EditorGUILayout.LabelField($"[{i}]", element?.ToString()); } EditorGUI.indentLevel--; } break; } default: { EditorGUILayout.LabelField($"Unsupported type {editorField?.Value?.GetType()}"); break; } } }