MegaDisplaceLimitsEditor.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using UnityEngine;
  2. using UnityEditor;
  3. [CanEditMultipleObjects, CustomEditor(typeof(MegaDisplaceLimits))]
  4. public class MegaDisplaceLimitsEditor : MegaModifierEditor
  5. {
  6. public override string GetHelpString() { return "Displace Limits Modifier by Chris West"; }
  7. public override bool Inspector()
  8. {
  9. MegaDisplaceLimits mod = (MegaDisplaceLimits)target;
  10. #if !UNITY_5 && !UNITY_2017 && !UNITY_2018 && !UNITY_2019 && !UNITY_2020
  11. EditorGUIUtility.LookLikeControls();
  12. #endif
  13. mod.map = (Texture2D)EditorGUILayout.ObjectField("Map", mod.map, typeof(Texture2D), true);
  14. mod.amount = EditorGUILayout.FloatField("Amount", mod.amount);
  15. mod.offset = EditorGUILayout.Vector2Field("Offset", mod.offset);
  16. mod.vertical = EditorGUILayout.FloatField("Vertical", mod.vertical);
  17. mod.scale = EditorGUILayout.Vector2Field("Scale", mod.scale);
  18. mod.channel = (MegaChannel)EditorGUILayout.EnumPopup("Channel", mod.channel);
  19. mod.CentLum = EditorGUILayout.Toggle("Cent Lum", mod.CentLum);
  20. mod.CentVal = EditorGUILayout.FloatField("Cent Val", mod.CentVal);
  21. mod.Decay = EditorGUILayout.FloatField("Decay", mod.Decay);
  22. mod.origin = EditorGUILayout.Vector3Field("Origin", mod.origin);
  23. mod.size = EditorGUILayout.Vector3Field("Size", mod.size);
  24. return false;
  25. }
  26. public override void DrawSceneGUI()
  27. {
  28. MegaDisplaceLimits mod = (MegaDisplaceLimits)target;
  29. Vector3 pos = mod.transform.TransformPoint(mod.origin);
  30. Vector3 newpos = Handles.PositionHandle(pos, Quaternion.identity);
  31. if ( newpos != pos )
  32. {
  33. mod.origin = mod.transform.worldToLocalMatrix.MultiplyPoint(newpos);
  34. EditorUtility.SetDirty(target);
  35. }
  36. }
  37. }