Beispiel #1
0
 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();
 }