//Initialise. public void initialise(VectorSpritesEditor vectorSpritesEditor, VectorSprites.VectorSpritesProperties vectorSpritesProperties) { this.vectorSpritesEditor = vectorSpritesEditor; this.vectorSpritesProperties = vectorSpritesProperties; currentSelectableEntity = vectorSpritesProperties.selectedEntity; for (int i = 0; i < vectorSpritesProperties.selectedEntities.Count; i++) { currentShapeGroups.Add(vectorSpritesProperties.selectedEntities[i].primaryID); currentShapes.Add(vectorSpritesProperties.selectedEntities[i].secondaryID); } //Get names and values for the enumerated types. enumeratedTypeNames = new string[Enum.GetNames(typeof(EnumeratedTypeNameArrays)).Length][]; enumeratedTypeValues = new int[enumeratedTypeNames.Length][]; for (int k = 0; k < enumeratedTypeNames.Length; k++) { enumeratedTypeNames[k] = Enum.GetNames(k == 0 ? typeof(VectorSprites.TransformType) : typeof(VectorSprites.TransformOrigin)); enumeratedTypeValues[k] = new int[enumeratedTypeNames[k].Length]; for (int i = 0; i < enumeratedTypeNames[k].Length; i++) { enumeratedTypeValues[k][i] = i; for (int j = 65; j <= 90; j++) { enumeratedTypeNames[k][i] = enumeratedTypeNames[k][i].Replace(((char)j).ToString(), " " + ((char)j).ToString()); } string[] enumeratedTypeNameWords = enumeratedTypeNames[k][i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); enumeratedTypeNames[k][i] = ""; for (int j = 0; j < enumeratedTypeNameWords.Length; j++) { enumeratedTypeNames[k][i] += enumeratedTypeNameWords[j] + (enumeratedTypeNameWords[j].Length > 1 && j < enumeratedTypeNameWords.Length - 1 ? " " : ""); } } } }
//Initialise. public void initialise(VectorSpritesEditor vectorSpritesEditor, VectorSprites.VectorSpritesProperties vectorSpritesProperties) { this.vectorSpritesEditor = vectorSpritesEditor; this.vectorSpritesProperties = vectorSpritesProperties; for (int i = 0; i < vectorSpritesProperties.selectedEntities.Count; i++) { currentShapeGroups.Add(vectorSpritesProperties.selectedEntities[i].primaryID); currentShapes.Add(vectorSpritesProperties.selectedEntities[i].secondaryID); } }
//On GUI. public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { //Set the row height and initial position. float rowHeight = base.GetPropertyHeight(property, label); position = new Rect(position.xMin, position.yMin, position.width, rowHeight); rowHeight += EditorGUIUtility.standardVerticalSpacing; //Allow the user to edit the name of the Vector Sprites instance. property.Next(true); property.Next(false); property.stringValue = EditorGUI.TextField(position, EditorGUI.BeginProperty(position, new GUIContent("Name", "The name of this Vector Sprites " + "instance."), property), property.stringValue); EditorGUI.EndProperty(); position = new Rect(position.xMin, position.yMin + rowHeight, position.width, position.height); //Display a button to open up the editor window, but only if not in play mode. VectorSprites.VectorSpritesProperties vectorSpritesProperties = (VectorSprites.VectorSpritesProperties)fieldInfo.GetValue( property.serializedObject.targetObject); if (vectorSpritesProperties.updateVersion()) { if (GUI.Button(new Rect(position.xMin, position.yMin, position.width, position.height * 1.5f), new GUIContent("Vector Sprites Editor", "Show the Vector Sprites editor window for creating sprites."))) { if (EditorApplication.isPlayingOrWillChangePlaymode) { EditorUtility.DisplayDialog("Play Mode", "The Vector Sprites Editor window cannot be displayed in play mode.", "OK"); } else { VectorSpritesEditor vectorSpritesEditor = EditorWindow.GetWindow <VectorSpritesEditor>(); vectorSpritesEditor.minSize = new Vector3(1124, 596); vectorSpritesEditor.title = "Vector Sprites"; vectorSpritesEditor.initialise(property.serializedObject.targetObject, vectorSpritesProperties); } } } else { EditorGUI.HelpBox(new Rect(position.xMin, position.yMin, position.width, position.height * 4), "This Vector Sprites component was last modified with Vector Sprites version " + vectorSpritesProperties.version + ", but you have version " + VectorSprites.VectorSpritesProperties.currentVersion + " installed. Please upgrade Vector Sprites to the latest version to continue using this component.", MessageType.Error); } }