private void OnEnable() { list = new ReorderableList(serializedObject, serializedObject.FindProperty("frames"), true, true, true, true); spriteAnimationSheet = (SpriteAnimationSheet)target; //for (int i = 0; i < 8; i++) //{ // spriteAnimationSheet.sprites[i].SpriteArray = new Sprite[8]; //} sheetNameProperty = serializedObject.FindProperty("sheetName"); animTypeProperty = serializedObject.FindProperty("animType"); animModeProperty = serializedObject.FindProperty("animMode"); framesPerSecondProperty = serializedObject.FindProperty("framesPerSecond"); spriteArrayProperty = serializedObject.FindProperty("sprites"); // test = serializedObject.FindProperty("sprites"); // Get Frame and Sprite Arrays //spriteArray = GetSprites.spriteArray; if (target == null) { return; } // Draw the reordablelist list.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { var element = list.serializedProperty.GetArrayElementAtIndex(index); rect.y += 2; EditorGUI.LabelField(rect, "Sprite #" + (index + 1f)); rect.x += 65; EditorGUI.LabelField(rect, "Len: " + (spriteAnimationSheet.framesPerSecond / list.count)); //Debug.Log("SpriteArray: " + spriteArray + index); }; // Header of the list list.drawHeaderCallback = (Rect rect) => { EditorGUI.LabelField(rect, "Frames"); }; // When frame is selected list.onSelectCallback = (ReorderableList l) => { }; }
public override void OnInspectorGUI() { serializedObject.Update(); //base.OnInspectorGUI(); spriteAnimationSheet = (SpriteAnimationSheet)target; EditorGUILayout.PropertyField(sheetNameProperty, new GUIContent("Name Field")); EditorGUILayout.PropertyField(animTypeProperty, new GUIContent("Animation Type")); EditorGUILayout.PropertyField(animModeProperty, new GUIContent("Animation Mode")); EditorGUILayout.PropertyField(framesPerSecondProperty, new GUIContent("FPS")); list.DoLayoutList(); //Debug.Log(frameArray[1].sprite); //EditorGUILayout.BeginHorizontal(); //EditorGUILayout.ObjectField(GetSprites.SpriteObject, typeof(Sprite), true); //EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(spriteArrayProperty, new GUIContent("Sprites")); //GetSprites.SpriteArray = new Sprite[list.count]; switch (spriteAnimationSheet.animType) { case SpriteAnimationSheet.AnimType.Eight_Directions: break; case SpriteAnimationSheet.AnimType.Four_Directions: break; case SpriteAnimationSheet.AnimType.One_Direction: break; default: break; } switch (spriteAnimationSheet.animMode) { case SpriteAnimationSheet.AnimMode.Loop: break; case SpriteAnimationSheet.AnimMode.Once: break; default: break; } serializedObject.ApplyModifiedProperties(); }