using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
[CustomEditor(typeof(PlanarReflection))]
|
|
public class PlanarReflectionEditor : Editor
|
|
{
|
|
private SerializedObject serObj;
|
|
|
|
//private SerializedProperty wavesFrequency;
|
|
|
|
// reflection
|
|
private SerializedProperty reflectionMask;
|
|
private SerializedProperty reflectSkybox;
|
|
private SerializedProperty clearColor;
|
|
|
|
bool showKidsWithReflectionHint = false;
|
|
|
|
public void OnEnable () {
|
|
serObj = new SerializedObject (target);
|
|
|
|
reflectionMask = serObj.FindProperty("reflectionMask");
|
|
reflectSkybox = serObj.FindProperty("reflectSkybox");
|
|
clearColor = serObj.FindProperty("clearColor");
|
|
}
|
|
|
|
public override void OnInspectorGUI ()
|
|
{
|
|
GUILayout.Label ("Render planar reflections and use GrabPass for refractions", EditorStyles.miniBoldLabel);
|
|
|
|
if(!SystemInfo.supportsRenderTextures)
|
|
EditorGUILayout.HelpBox("Realtime reflections not supported", MessageType.Warning);
|
|
|
|
serObj.Update();
|
|
|
|
EditorGUILayout.PropertyField(reflectionMask, new GUIContent("Reflection layers"));
|
|
EditorGUILayout.PropertyField(reflectSkybox, new GUIContent("Use skybox"));
|
|
EditorGUILayout.PropertyField(clearColor, new GUIContent("Clear color"));
|
|
|
|
showKidsWithReflectionHint = EditorGUILayout.BeginToggleGroup("Show all tiles", showKidsWithReflectionHint);
|
|
if (showKidsWithReflectionHint) {
|
|
int i = 0;
|
|
foreach(Transform t in ((PlanarReflection)target).transform) {
|
|
if (t.GetComponent<WaterTile>()) {
|
|
if(i%2==0)
|
|
EditorGUILayout.BeginHorizontal();
|
|
EditorGUILayout.ObjectField(t, typeof(Transform), true);
|
|
if(i%2==1)
|
|
EditorGUILayout.EndHorizontal();
|
|
i = (i+1)%2;
|
|
}
|
|
}
|
|
if(i>0)
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
EditorGUILayout.EndToggleGroup();
|
|
|
|
serObj.ApplyModifiedProperties();
|
|
}
|
|
|
|
}
|