Beispiel #1
0
    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();
                }
            }
        }
    }
Beispiel #2
0
 private void OnDisable()
 {
     MyTarget = null;
 }