CascadeVFXInspector.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // River Modeler
  2. // Staggart Creations (http://staggart.xyz)
  3. // Copyright protected under Unity Asset Store EULA
  4. // Copying or referencing source code for the production of new asset store content is strictly prohibited.
  5. using System;
  6. using sc.modeling.river.runtime;
  7. using sc.modeling.water.common.editor;
  8. using UnityEditor;
  9. namespace sc.modeling.river.editor
  10. {
  11. [CustomEditor(typeof(CascadeVFX))]
  12. [CanEditMultipleObjects]
  13. public class CascadeVFXInspector : RiverVFXInspectorBase
  14. {
  15. private SerializedProperty heightDropThreshold;
  16. private SerializedProperty shifting;
  17. private SerializedProperty randomOffset;
  18. private SerializedProperty minParticleDistance;
  19. private SerializedProperty margin;
  20. void OnEnable()
  21. {
  22. base.Enable();
  23. heightDropThreshold = serializedObject.FindProperty("heightDropThreshold");
  24. shifting = serializedObject.FindProperty("shifting");
  25. randomOffset = serializedObject.FindProperty("randomOffset");
  26. minParticleDistance = serializedObject.FindProperty("minParticleDistance");
  27. margin = serializedObject.FindProperty("margin");
  28. }
  29. public override void OnInspectorGUI()
  30. {
  31. base.OnInspectorGUI();
  32. serializedObject.Update();
  33. EditorGUI.BeginChangeCheck();
  34. EditorGUILayout.LabelField("Spawning Criteria", EditorStyles.boldLabel);
  35. EditorGUILayout.PropertyField(heightDropThreshold);
  36. EditorGUILayout.PropertyField(shifting);
  37. EditorGUILayout.PropertyField(randomOffset);
  38. EditorGUILayout.PropertyField(minParticleDistance);
  39. EditorGUILayout.PropertyField(margin);
  40. if (EditorGUI.EndChangeCheck())
  41. {
  42. serializedObject.ApplyModifiedProperties();
  43. EditorApplication.delayCall += () =>
  44. {
  45. foreach (var m_target in targets)
  46. ((RiverVFX)m_target).GenerateEmitters();
  47. };
  48. }
  49. UI.DrawFooter();
  50. }
  51. }
  52. }