public override void OnGUI(Rect rect) { var typeNames = VariableValueDrawer.GetTypeNames(); EditorGUILayout.LabelField(_label); var enter = GuiFields.TextEnterField("NewName", GUIContent.none, ref _newName); _newType = EditorGUILayout.Popup(_newType, typeNames); var create = GUILayout.Button(EditorHelper.CreateContent); if ((enter || create) && !string.IsNullOrEmpty(_newName)) { if (CreateVariable(_newName, _newType)) { editorWindow.Close(); _newName = "Name"; } } }
public static string[] GetTypeNames() { if (_typeNames == null) { var valueTypeNames = VariableValueDrawer.GetTypeNames(); var referenceLocationNames = VariableReferenceDrawer.GetLocationNames(); _typeNames = new string[valueTypeNames.Length + referenceLocationNames.Length]; _locationOffset = valueTypeNames.Length; for (var i = 0; i < valueTypeNames.Length; i++) { _typeNames[i] = "Value/" + valueTypeNames[i]; } for (var i = 0; i < referenceLocationNames.Length; i++) { _typeNames[_locationOffset + i] = "Reference/" + referenceLocationNames[i]; } } return(_typeNames); }