public override void OnInspectorGUI() { var type = serializedObject.FindProperty("MyType"); MyTarget = target as BbSpriteLayout; // Preview button EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); var content = new GUIContent( Window_AtlasPreview.IsOpened ? "Close preview" : "Open preview...", "Toggle a window that lets you view the layout of the selected BbSprite" ); if (GUILayout.Button(content)) { TogglePreview(); } EditorGUILayout.EndHorizontal(); // Type content = new GUIContent ("Type", "The layout configuration type for this sprite's sheet."); EditorGUILayout.PropertyField(type, content); //PseudoDefaultInspector.Draw(serializedObject, "_myLayoutAsCustomGrid"); //var prop_grid = serializedObject.FindProperty("_myLayoutAsCustomGrid"); //if (prop_grid.objectReferenceValue != null && !prop_grid.hasMultipleDifferentValues) //{ // _isGridEditorOpened = EditorGUILayout.Foldout(_isGridEditorOpened, "Clip properties"); // if (_isGridEditorOpened) // { // var grids = new List<LayoutData_CustomGrid>(); // foreach (var oTarget in serializedObject.targetObjects) // { // var myTarget = oTarget as BbSpriteLayout; // Debug.Assert(myTarget != null, "MyTarget != null"); // grids.Add(myTarget._myLayoutAsCustomGrid); // } // var obj_clip = new SerializedObject(grids.ToArray()); // PseudoDefaultInspector.Draw(obj_clip); // } //} // Show extra ui for certain layout types //if ( // type.enumValueIndex == (int)BbSpriteLayout.Type.CustomGrid && // !type.hasMultipleDifferentValues) //{ // DrawUi_CustomGrid(); //} // Update properties and, if they changed, call sprite's Update if (serializedObject.ApplyModifiedProperties() || Event.current.commandName == "UndoRedoPerformed") { foreach (var oTarget in serializedObject.targetObjects) { var myTarget = oTarget as BbSpriteLayout; Debug.Assert(myTarget != null, "myTarget != null"); myTarget.Update(); var sprite = myTarget.GetComponent <BbSprite>(); if (sprite != null) { sprite.Update(); } } } }
private void OnDisable() { MyTarget = null; }