124 lines
4.3 KiB
C#
124 lines
4.3 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEditorInternal;
|
|
|
|
namespace Enviro
|
|
{
|
|
[CustomEditor(typeof(Enviro.EnviroEffectRemovalZone))]
|
|
public class EnviroEffectRemovalZoneEditor : Editor {
|
|
|
|
GUIStyle boxStyle;
|
|
GUIStyle boxStyleModified;
|
|
GUIStyle wrapStyle;
|
|
GUIStyle wrapStyle2;
|
|
GUIStyle clearStyle;
|
|
|
|
Enviro.EnviroEffectRemovalZone myTarget;
|
|
|
|
private Color boxColor1;
|
|
|
|
SerializedObject serializedObj;
|
|
|
|
private SerializedProperty type, density, radius, stretch, feather, size;
|
|
|
|
void OnEnable()
|
|
{
|
|
myTarget = (Enviro.EnviroEffectRemovalZone)target;
|
|
serializedObj = new SerializedObject (myTarget);
|
|
boxColor1 = new Color(0.95f, 0.95f, 0.95f,1f);
|
|
type = serializedObj.FindProperty("type");
|
|
density = serializedObj.FindProperty("density");
|
|
radius = serializedObj.FindProperty("radius");
|
|
stretch = serializedObj.FindProperty("stretch");
|
|
feather = serializedObj.FindProperty("feather");
|
|
size = serializedObj.FindProperty("size");
|
|
}
|
|
|
|
public override void OnInspectorGUI ()
|
|
{
|
|
|
|
//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 - Effect Removal Zone", boxStyle);
|
|
GUILayout.Space(30);
|
|
GUI.backgroundColor = boxColor1;
|
|
GUILayout.BeginVertical("Information", boxStyleModified);
|
|
GUI.backgroundColor = Color.white;
|
|
GUILayout.Space(20);
|
|
EditorGUILayout.LabelField("Use this component to hide fog and weather particles for example for indoor areas.", wrapStyle2);
|
|
GUILayout.EndVertical();
|
|
GUI.backgroundColor = boxColor1;
|
|
GUILayout.BeginVertical("", boxStyleModified);
|
|
GUI.backgroundColor = Color.white;
|
|
GUILayout.Space(20);
|
|
///////
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(type);
|
|
GUILayout.Space(5);
|
|
EditorGUILayout.PropertyField(density);
|
|
EditorGUILayout.PropertyField(feather);
|
|
GUILayout.Space(5);
|
|
if(myTarget.type == Enviro.EnviroEffectRemovalZone.Mode.Spherical)
|
|
{
|
|
EditorGUILayout.PropertyField(radius);
|
|
EditorGUILayout.PropertyField(stretch);
|
|
}
|
|
else
|
|
{
|
|
EditorGUILayout.PropertyField(size);
|
|
}
|
|
|
|
if (EditorGUI.EndChangeCheck ())
|
|
{
|
|
serializedObj.ApplyModifiedProperties ();
|
|
}
|
|
|
|
///////
|
|
GUILayout.EndVertical();
|
|
|
|
// END
|
|
EditorGUILayout.EndVertical ();
|
|
}
|
|
}
|
|
} |