void OnGUI() { EditorGUILayout.BeginVertical(); mAnimationData.mAnimationName = EditorGUILayout.TextField("Name: ", mAnimationData.mAnimationName); mAnimationData.mAnimSpeed = EditorGUILayout.Slider("Animation Speed: ", mAnimationData.mAnimSpeed, 0, 50); mAnimationScroll = EditorGUILayout.BeginScrollView(mAnimationScroll, GUILayout.Width(500), GUILayout.Height(450)); if (Event.current.commandName == "ObjectSelectorUpdated" && mObjectPickerId == EditorGUIUtility.GetObjectPickerControlID()) { Sprite a = (Sprite)EditorGUIUtility.GetObjectPickerObject(); mObjectPickerId = -1; if (a != null) { if (mAnimationData.mSprites.Count > 0) { if (AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(a.texture)) != mAnimationData.mTextureAssetGUID) { EditorUtility.DisplayDialog("Cannot Add Sprite", "Sprite Not Part of The Same Texture Asset", "Okay"); } else { mAnimationData.mSprites.Add(a); if (mIsPlayer) { EditorUtility.SetDirty(PlayerEditor.GetActivePlayer()); } else { EditorUtility.SetDirty(GameObjectEditor.GetCurrentScriptable()); } mWindow.Repaint(); } } else { mAnimationData.mTextureAssetGUID = DoesAssetExists(a); if (mAnimationData.mTextureAssetGUID != null) { mAnimationData.mSprites.Add(a); if (mIsPlayer) { EditorUtility.SetDirty(PlayerEditor.GetActivePlayer()); } else { EditorUtility.SetDirty(GameObjectEditor.GetCurrentScriptable()); } mWindow.Repaint(); } } } } mAnimations.DoLayoutList(); EditorGUILayout.EndScrollView(); if (GUILayout.Button("Save Animation")) { if (mAnimationData.mSprites.Count <= 0) { EditorUtility.DisplayDialog("Animation Data Empty", "Cannot add an empty animation to the animation data", "Okay"); } else { if (!mIsPlayer) { GameObjectEditor.AddToCurrentAnimationList(mAnimationData); mWindow.Close(); } else { PlayerEditor.AddToPlayerAnimation(mAnimationData); mWindow.Close(); } } } EditorGUILayout.EndVertical(); }