138 lines
5.3 KiB
C#
138 lines
5.3 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEditorInternal;
|
|
|
|
namespace Enviro
|
|
{
|
|
[CustomEditor(typeof(Enviro.EnviroReflectionProbe))]
|
|
public class EnviroReflectionProbeEditor : Editor {
|
|
|
|
GUIStyle boxStyle;
|
|
GUIStyle boxStyleModified;
|
|
GUIStyle wrapStyle;
|
|
GUIStyle wrapStyle2;
|
|
GUIStyle clearStyle;
|
|
|
|
Enviro.EnviroReflectionProbe myTarget;
|
|
|
|
public bool showAudio = false;
|
|
public bool showFog = false;
|
|
public bool showSeason = false;
|
|
public bool showClouds = false;
|
|
public bool showGeneral = false;
|
|
public bool showPostProcessing = false;
|
|
public bool showThirdParty = false;
|
|
|
|
private Color boxColor1;
|
|
|
|
SerializedObject serializedObj;
|
|
|
|
void OnEnable()
|
|
{
|
|
myTarget = (Enviro.EnviroReflectionProbe)target;
|
|
serializedObj = new SerializedObject (myTarget);
|
|
boxColor1 = new Color(0.95f, 0.95f, 0.95f,1f);
|
|
}
|
|
|
|
public override void OnInspectorGUI ()
|
|
{
|
|
myTarget = (Enviro.EnviroReflectionProbe)target;
|
|
serializedObj.UpdateIfRequiredOrScript ();
|
|
|
|
//Set up the box style
|
|
if (boxStyle == null)
|
|
{
|
|
boxStyle = new GUIStyle(GUI.skin.box);
|
|
boxStyle.normal.textColor = GUI.skin.label.normal.textColor;
|
|
boxStyle.fontStyle = FontStyle.Bold;
|
|
boxStyle.alignment = TextAnchor.UpperLeft;
|
|
}
|
|
|
|
if (boxStyleModified == null)
|
|
{
|
|
boxStyleModified = new GUIStyle(EditorStyles.helpBox);
|
|
boxStyleModified.normal.textColor = GUI.skin.label.normal.textColor;
|
|
boxStyleModified.fontStyle = FontStyle.Bold;
|
|
boxStyleModified.fontSize = 11;
|
|
boxStyleModified.alignment = TextAnchor.UpperLeft;
|
|
}
|
|
|
|
//Setup the wrap style
|
|
if (wrapStyle == null)
|
|
{
|
|
wrapStyle = new GUIStyle(GUI.skin.label);
|
|
wrapStyle.fontStyle = FontStyle.Bold;
|
|
wrapStyle.wordWrap = true;
|
|
}
|
|
|
|
if (wrapStyle2 == null)
|
|
{
|
|
wrapStyle2 = new GUIStyle(GUI.skin.label);
|
|
wrapStyle2.fontStyle = FontStyle.Normal;
|
|
wrapStyle2.wordWrap = true;
|
|
}
|
|
|
|
if (clearStyle == null) {
|
|
clearStyle = new GUIStyle(GUI.skin.label);
|
|
clearStyle.normal.textColor = GUI.skin.label.normal.textColor;
|
|
clearStyle.fontStyle = FontStyle.Bold;
|
|
clearStyle.alignment = TextAnchor.UpperRight;
|
|
}
|
|
|
|
|
|
GUILayout.BeginVertical(" Enviro - Reflection Probe", boxStyle);
|
|
GUILayout.Space(30);
|
|
GUI.backgroundColor = boxColor1;
|
|
GUILayout.BeginVertical("Information", boxStyleModified);
|
|
GUI.backgroundColor = Color.white;
|
|
GUILayout.Space(20);
|
|
EditorGUILayout.LabelField("Use this component to update your realtime reflection probes with Enviro Sky. You also can enable the 'Custom Rendering' to have enviro effects in your reflection probes!", wrapStyle2);
|
|
EditorGUILayout.LabelField("Please enable 'Standalone Probe' if you use this component on your own places reflection probes.", wrapStyle2);
|
|
GUILayout.EndVertical();
|
|
GUI.backgroundColor = boxColor1;
|
|
GUILayout.BeginVertical("Setup", boxStyleModified);
|
|
GUI.backgroundColor = Color.white;
|
|
GUILayout.Space(20);
|
|
myTarget.standalone = EditorGUILayout.Toggle("Standalone Probe", myTarget.standalone);
|
|
|
|
if (myTarget.standalone)
|
|
{
|
|
GUILayout.Space(10);
|
|
#if ENVIRO_HD
|
|
GUI.backgroundColor = boxColor1;
|
|
GUILayout.BeginVertical("Enviro Effects Rendering", boxStyleModified);
|
|
GUI.backgroundColor = Color.white;
|
|
GUILayout.Space(20);
|
|
myTarget.customRendering = EditorGUILayout.Toggle("Render Enviro Effects", myTarget.customRendering);
|
|
|
|
if(myTarget.customRendering)
|
|
{
|
|
EditorGUI.BeginChangeCheck();
|
|
//myTarget.useFog = EditorGUILayout.Toggle("Use Fog", myTarget.useFog);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
serializedObj.ApplyModifiedProperties();
|
|
}
|
|
}
|
|
GUILayout.EndVertical();
|
|
#endif
|
|
GUI.backgroundColor = boxColor1;
|
|
GUILayout.BeginVertical("Update Settings", boxStyleModified);
|
|
GUI.backgroundColor = Color.white;
|
|
GUILayout.Space(20);
|
|
myTarget.reflectionsUpdateTreshhold = EditorGUILayout.FloatField("Update Treshold in GameTime Hours", myTarget.reflectionsUpdateTreshhold);
|
|
if (myTarget.customRendering)
|
|
{
|
|
myTarget.useTimeSlicing = EditorGUILayout.Toggle("Use Time-Slicing", myTarget.useTimeSlicing);
|
|
}
|
|
GUILayout.EndVertical();
|
|
}
|
|
GUILayout.EndVertical();
|
|
// END
|
|
EditorGUILayout.EndVertical ();
|
|
EditorUtility.SetDirty (target);
|
|
}
|
|
}
|
|
} |