PlanarReflectionEditor.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using UnityEngine;
  2. using UnityEditor;
  3. namespace UnityStandardAssets.Water
  4. {
  5. [CustomEditor(typeof(PlanarReflection))]
  6. public class PlanarReflectionEditor : Editor
  7. {
  8. private SerializedObject serObj;
  9. //private SerializedProperty wavesFrequency;
  10. // reflection
  11. private SerializedProperty reflectionMask;
  12. private SerializedProperty reflectSkybox;
  13. private SerializedProperty clearColor;
  14. bool showKidsWithReflectionHint = false;
  15. public void OnEnable()
  16. {
  17. serObj = new SerializedObject(target);
  18. reflectionMask = serObj.FindProperty("reflectionMask");
  19. reflectSkybox = serObj.FindProperty("reflectSkybox");
  20. clearColor = serObj.FindProperty("clearColor");
  21. }
  22. public override void OnInspectorGUI()
  23. {
  24. GUILayout.Label("Render planar reflections and use GrabPass for refractions", EditorStyles.miniBoldLabel);
  25. serObj.Update();
  26. EditorGUILayout.PropertyField(reflectionMask, new GUIContent("Reflection layers"));
  27. EditorGUILayout.PropertyField(reflectSkybox, new GUIContent("Use skybox"));
  28. EditorGUILayout.PropertyField(clearColor, new GUIContent("Clear color"));
  29. showKidsWithReflectionHint = EditorGUILayout.BeginToggleGroup("Show all tiles", showKidsWithReflectionHint);
  30. if (showKidsWithReflectionHint)
  31. {
  32. int i = 0;
  33. foreach (Transform t in ((PlanarReflection)target).transform)
  34. {
  35. if (t.GetComponent<WaterTile>())
  36. {
  37. if (i % 2 == 0)
  38. EditorGUILayout.BeginHorizontal();
  39. EditorGUILayout.ObjectField(t, typeof(Transform), true);
  40. if (i % 2 == 1)
  41. EditorGUILayout.EndHorizontal();
  42. i = (i + 1) % 2;
  43. }
  44. }
  45. if (i > 0)
  46. EditorGUILayout.EndHorizontal();
  47. }
  48. EditorGUILayout.EndToggleGroup();
  49. serObj.ApplyModifiedProperties();
  50. }
  51. }
  52. }