using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
[CustomEditor(typeof(SpecularLighting))]
|
|
public class SpecularLightingEditor : Editor
|
|
{
|
|
private SerializedObject serObj;
|
|
private SerializedProperty specularLight;
|
|
|
|
public void OnEnable () {
|
|
serObj = new SerializedObject (target);
|
|
specularLight = serObj.FindProperty("specularLight");
|
|
}
|
|
|
|
public override void OnInspectorGUI ()
|
|
{
|
|
serObj.Update();
|
|
|
|
GameObject go = ((SpecularLighting)serObj.targetObject).gameObject;
|
|
WaterBase wb = (WaterBase)go.GetComponent(typeof(WaterBase));
|
|
|
|
if(!wb.sharedMaterial)
|
|
return;
|
|
|
|
if(wb.sharedMaterial.HasProperty("_WorldLightDir")) {
|
|
GUILayout.Label ("Transform casting specular highlights", EditorStyles.miniBoldLabel);
|
|
EditorGUILayout.PropertyField(specularLight, new GUIContent("Specular light"));
|
|
|
|
if(wb.sharedMaterial.HasProperty("_SpecularColor"))
|
|
WaterEditorUtility.SetMaterialColor(
|
|
"_SpecularColor",
|
|
EditorGUILayout.ColorField("Specular",
|
|
WaterEditorUtility.GetMaterialColor("_SpecularColor", wb.sharedMaterial)),
|
|
wb.sharedMaterial);
|
|
if(wb.sharedMaterial.HasProperty("_Shininess"))
|
|
WaterEditorUtility.SetMaterialFloat("_Shininess", EditorGUILayout.Slider(
|
|
"Specular power",
|
|
WaterEditorUtility.GetMaterialFloat("_Shininess", wb.sharedMaterial),
|
|
0.0F, 500.0F), wb.sharedMaterial);
|
|
}
|
|
else
|
|
GUILayout.Label ("The shader doesn't have the needed _WorldLightDir property.", EditorStyles.miniBoldLabel);
|
|
|
|
serObj.ApplyModifiedProperties();
|
|
}
|
|
|
|
}
|