MegaAttractorShapeEditor.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using UnityEngine;
  2. using UnityEditor;
  3. [CanEditMultipleObjects, CustomEditor(typeof(MegaAttractorShape))]
  4. public class MegaAttractorShapeEditor : MegaModifierEditor
  5. {
  6. public override string GetHelpString() { return "Spline Attractor Modifier by Chris West"; }
  7. public override bool Inspector()
  8. {
  9. MegaAttractorShape mod = (MegaAttractorShape)target;
  10. #if !UNITY_5 && !UNITY_2017 && !UNITY_2018 && !UNITY_2019 && !UNITY_2020
  11. EditorGUIUtility.LookLikeControls();
  12. #endif
  13. mod.shape = (MegaShape)EditorGUILayout.ObjectField("Shape", mod.shape, typeof(MegaShape), true);
  14. if ( mod.shape != null && mod.shape.splines.Count > 1 )
  15. {
  16. mod.curve = EditorGUILayout.IntSlider("Curve", mod.curve, 0, mod.shape.splines.Count - 1);
  17. if ( mod.curve < 0 )
  18. mod.curve = 0;
  19. if ( mod.curve > mod.shape.splines.Count - 1 )
  20. mod.curve = mod.shape.splines.Count - 1;
  21. }
  22. mod.itercount = EditorGUILayout.IntSlider("Iter Count", mod.itercount, 1, 5);
  23. mod.attractType = (MegaAttractType)EditorGUILayout.EnumPopup("Type", mod.attractType);
  24. mod.limit = EditorGUILayout.FloatField("Limit", mod.limit);
  25. mod.distance = EditorGUILayout.FloatField("Distance", mod.distance);
  26. if ( mod.distance < 0.0f )
  27. mod.distance = 0.0f;
  28. if ( mod.attractType != MegaAttractType.Rotate )
  29. mod.force = EditorGUILayout.FloatField("Force", mod.force);
  30. else
  31. {
  32. mod.rotate = EditorGUILayout.FloatField("Rotate", mod.rotate);
  33. mod.slide = EditorGUILayout.FloatField("Slide", mod.slide);
  34. }
  35. mod.crv = EditorGUILayout.CurveField("Influence Curve", mod.crv);
  36. mod.splinechanged = EditorGUILayout.Toggle("Spline Changed", mod.splinechanged);
  37. mod.flat = EditorGUILayout.Toggle("Mesh is Flat", mod.flat);
  38. return false;
  39. }
  40. }