LuxURPWindDistanceFadeDrawer.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEditor;
  4. public class LuxURPDistanceFadeDrawer : MaterialPropertyDrawer {
  5. public override void OnGUI (Rect position, MaterialProperty prop, string label, MaterialEditor editor) {
  6. // Needed since Unity 2019
  7. EditorGUIUtility.labelWidth = 0;
  8. Vector2 vec2value = prop.vectorValue;
  9. vec2value.x = prop.vectorValue.x;
  10. vec2value.x = Mathf.Sqrt(vec2value.x);
  11. vec2value.y = 1.0f / vec2value.y;
  12. vec2value.y = Mathf.Sqrt(vec2value.y);
  13. vec2value.y *= 0.5f;
  14. GUILayout.Space(-18);
  15. EditorGUI.BeginChangeCheck();
  16. EditorGUILayout.BeginVertical();
  17. vec2value.x = EditorGUILayout.FloatField("Max Distance", vec2value.x);
  18. vec2value.y = EditorGUILayout.FloatField("Fade Range", vec2value.y);
  19. EditorGUILayout.EndVertical();
  20. if (EditorGUI.EndChangeCheck ()) {
  21. vec2value.x *= vec2value.x;
  22. vec2value.y *= 2.0f;
  23. vec2value.y *= vec2value.y;
  24. // We use OneOver to get around the division in the shader
  25. vec2value.y = 1.0f / vec2value.y;
  26. prop.vectorValue = vec2value;
  27. }
  28. //EditorGUILayout.Vector2Field("test", prop.vectorValue);
  29. }
  30. }