MegaDynamicRippleEditor.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using UnityEngine;
  2. using UnityEditor;
  3. [CanEditMultipleObjects, CustomEditor(typeof(MegaDynamicRipple))]
  4. public class MegaDynamicRippleEditor : MegaModifierEditor
  5. {
  6. public override string GetHelpString() { return "Dynamic Ripple Modifier by Chris West"; }
  7. public override Texture LoadImage() { return (Texture)EditorGUIUtility.LoadRequired("MegaFiers\\bend_help.png"); }
  8. public override bool Inspector()
  9. {
  10. MegaDynamicRipple mod = (MegaDynamicRipple)target;
  11. #if !UNITY_5 && !UNITY_2017 && !UNITY_2018 && !UNITY_2019 && !UNITY_2020
  12. EditorGUIUtility.LookLikeControls();
  13. #endif
  14. bool dirty = false;
  15. mod.axis = (MegaAxis)EditorGUILayout.EnumPopup("Axis", mod.axis);
  16. mod.cols = EditorGUILayout.IntField("Columns", mod.cols);
  17. if ( mod.cols < 1 )
  18. mod.cols = 1;
  19. mod.rows = EditorGUILayout.IntField("Rows", mod.rows);
  20. if ( mod.rows < 1 )
  21. mod.rows = 1;
  22. if ( GUI.changed )
  23. dirty = true;
  24. mod.damping = EditorGUILayout.Slider("Damping", mod.damping, 0.0f, 1.0f);
  25. mod.inputdamp = EditorGUILayout.Slider("Input Damping", mod.inputdamp, 0.0f, 1.0f);
  26. mod.scale = EditorGUILayout.Slider("Scale", mod.scale, 0.0f, 4.0f);
  27. mod.speed = EditorGUILayout.Slider("Speed", mod.speed, 0.0f, 0.5f);
  28. mod.Force = EditorGUILayout.FloatField("Force", mod.Force);
  29. mod.InputForce = EditorGUILayout.FloatField("InputForce", mod.InputForce);
  30. mod.Obstructions = EditorGUILayout.BeginToggleGroup("Obstructions", mod.Obstructions);
  31. bool bilin = EditorGUILayout.Toggle("Bilinear Sample", mod.bilinearSample);
  32. if ( bilin != mod.bilinearSample )
  33. {
  34. mod.bilinearSample = bilin;
  35. dirty = true;
  36. }
  37. Texture2D obtex = (Texture2D)EditorGUILayout.ObjectField("Obstructions", mod.obTexture, typeof(Texture2D), true);
  38. EditorGUILayout.EndToggleGroup();
  39. if ( obtex != mod.obTexture )
  40. {
  41. mod.obTexture = obtex;
  42. dirty = true;
  43. }
  44. mod.DropsPerSec = EditorGUILayout.FloatField("Drops Per Sec", mod.DropsPerSec);
  45. if ( mod.DropsPerSec < 0.0f )
  46. mod.DropsPerSec = 0.0f;
  47. if ( dirty )
  48. mod.ResetGrid();
  49. if ( GUILayout.Button("Reset Physics") )
  50. mod.ResetGrid();
  51. return false;
  52. }
  53. }