Files
UmaViewer/Assets/Editor/GlobalValue.cs
T
2022-09-09 03:31:47 +08:00

181 lines
7.8 KiB
C#

using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
public class GlobalValue : EditorWindow
{
float _Global_MaxDensity = 1.0f;
float _Global_MaxHeight = 10.0f;
float _GlobalOutlineOffest = 0.0f;
float _GlobalOutlineWidth = 1.0f;
float _GlobalCameraFov = 0.0f;
float _CylinderBlend = 0.0f;
Color _GlobalToonColor = new Color(1, 1, 1, 0);
Color _Global_FogColor;
Color _GlobalDirtRimSpecularColor;
Color _GlobalDirtToonColor;
Color _GlobalRimColor = new Color(1, 1, 1, 0);
Color _GlobalDirtColor;
Color _RimColor2;
List<Vector4> _MainParam = new List<Vector4>();
Vector4 _MainParam_0;
Vector4 _MainParam_1;
List<Vector4> _HighParam1 = new List<Vector4>();
Vector4 _HighParam1_0 = new Vector4(0, 0, 0, 1);
Vector4 _HighParam1_1 = new Vector4(0, 0, 0, 1);
Vector4 _HighParam1_2;
List<Vector4> _HighParam2 = new List<Vector4>();
Vector4 _HighParam2_0 = new Vector4(0, 0, 0, 1);
Vector4 _HighParam2_1 = new Vector4(0, 0, 0, 1);
List<Vector4> _ColorArray = new List<Vector4>();
Vector4 _ColorArray_0;
Vector4 _ColorArray_1;
Vector4 _ColorArray_2;
Vector4 _ColorArray_3;
Vector4 _ColorArray_4;
Vector4 _ColorArray_5;
Vector4 _ColorArray_6;
Vector4 _ColorArray_7;
Vector4 _ColorArray_8;
Vector4 _ColorArray_9;
List<float> _DirtRate = new List<float>();
float _DirtRate_0;
float _DirtRate_1;
float _DirtRate_2;
Vector4 _Global_FogMinDistance;
Vector4 _Global_FogLength;
float _RimHorizonOffset;
Color _AmbientColor;
Vector2 scrollPosition = Vector2.zero;
[MenuItem("Global/Value Set")]
public static void ValueWindow()
{
EditorWindow.GetWindow<GlobalValue>("SetValue");
}
void OnGUI()
{
scrollPosition = GUILayout.BeginScrollView(scrollPosition, true, true);
GUILayout.Label("Set Your Global Value!", EditorStyles.boldLabel);
//Vector
_Global_FogMinDistance = EditorGUILayout.Vector4Field("雾气出现距离", _Global_FogMinDistance);
_Global_FogLength = EditorGUILayout.Vector4Field("雾气长度", _Global_FogLength);
//Float
_Global_MaxDensity = EditorGUILayout.Slider("最低能见度", _Global_MaxDensity, 0, 1);
_Global_MaxHeight = EditorGUILayout.Slider("最高可见高度", _Global_MaxHeight, 0, 10);
_GlobalOutlineOffest = EditorGUILayout.Slider("_GlobalOutlineOffest", _GlobalOutlineOffest, 0, 100);
_GlobalOutlineWidth = EditorGUILayout.Slider("全局轮廓线宽度", _GlobalOutlineWidth, 0, 100);
_GlobalCameraFov = EditorGUILayout.Slider("_GlobalCameraFov", _GlobalCameraFov, 0, 100);
_CylinderBlend = EditorGUILayout.Slider("_CylinderBlend", _CylinderBlend, 0, 100);
_RimHorizonOffset = EditorGUILayout.Slider("_RimHorizonOffset", _RimHorizonOffset, 0, 1);
//Color
_GlobalToonColor = EditorGUILayout.ColorField("阴影颜色", _GlobalToonColor);
_Global_FogColor = EditorGUILayout.ColorField("_Global_FogColor", _Global_FogColor);
_GlobalDirtRimSpecularColor = EditorGUILayout.ColorField("_GlobalDirtRimSpecularColor", _GlobalDirtRimSpecularColor);
_GlobalDirtToonColor = EditorGUILayout.ColorField("_GlobalDirtToonColor", _GlobalDirtToonColor);
_GlobalRimColor = EditorGUILayout.ColorField("边缘光颜色", _GlobalRimColor);
_GlobalDirtColor = EditorGUILayout.ColorField("_GlobalDirtColor", _GlobalDirtColor);
_RimColor2 = EditorGUILayout.ColorField("_RimColor2", _RimColor2);
_AmbientColor = EditorGUILayout.ColorField("_AmbientColor", _AmbientColor);
//Vector Array
_MainParam_0 = EditorGUILayout.Vector4Field("左眼偏移", _MainParam_0);
_MainParam_1 = EditorGUILayout.Vector4Field("右眼偏移", _MainParam_1);
_HighParam1_0 = EditorGUILayout.Vector4Field("左眼上高光(w值为强度)", _HighParam1_0);
_HighParam1_1 = EditorGUILayout.Vector4Field("左眼下高光", _HighParam1_1);
_HighParam1_2 = EditorGUILayout.Vector4Field("双眼闪烁效果", _HighParam1_2);
_HighParam2_0 = EditorGUILayout.Vector4Field("右眼上高光", _HighParam2_0);
_HighParam2_1 = EditorGUILayout.Vector4Field("右眼下高光", _HighParam2_1);
_ColorArray_0 = EditorGUILayout.ColorField("_ColorArray_0", _ColorArray_0);
_ColorArray_1 = EditorGUILayout.ColorField("_ColorArray_1", _ColorArray_1);
_ColorArray_2 = EditorGUILayout.ColorField("_ColorArray_2", _ColorArray_2);
_ColorArray_3 = EditorGUILayout.ColorField("_ColorArray_3", _ColorArray_3);
_ColorArray_4 = EditorGUILayout.ColorField("_ColorArray_4", _ColorArray_4);
_ColorArray_5 = EditorGUILayout.ColorField("_ColorArray_5", _ColorArray_5);
_ColorArray_6 = EditorGUILayout.ColorField("_ColorArray_6", _ColorArray_6);
_ColorArray_7 = EditorGUILayout.ColorField("_ColorArray_7", _ColorArray_7);
_ColorArray_8 = EditorGUILayout.ColorField("_ColorArray_8", _ColorArray_8);
_ColorArray_9 = EditorGUILayout.ColorField("_ColorArray_9", _ColorArray_9);
//Float Array
_DirtRate_0 = EditorGUILayout.Slider("_DirtRate_0", _DirtRate_0, 0, 1);
_DirtRate_1 = EditorGUILayout.Slider("_DirtRate_1", _DirtRate_1, 0, 1);
_DirtRate_2 = EditorGUILayout.Slider("_DirtRate_2", _DirtRate_2, 0, 1);
GUILayout.EndScrollView();
}
void Update()
{
//Color
Shader.SetGlobalColor("_GlobalToonColor", _GlobalToonColor);
Shader.SetGlobalColor("_Global_FogColor", _Global_FogColor);
Shader.SetGlobalColor("_GlobalDirtRimSpecularColor", _GlobalDirtRimSpecularColor);
Shader.SetGlobalColor("_GlobalDirtToonColor", _GlobalDirtToonColor);
Shader.SetGlobalColor("_GlobalRimColor", _GlobalRimColor);
Shader.SetGlobalColor("_GlobalDirtColor", _GlobalDirtColor);
Shader.SetGlobalColor("_RimColor2", _RimColor2);
//Float
Shader.SetGlobalFloat("_Global_MaxDensity", _Global_MaxDensity);
Shader.SetGlobalFloat("_Global_MaxHeight", _Global_MaxHeight);
Shader.SetGlobalFloat("_GlobalOutlineOffest", _GlobalOutlineOffest);
Shader.SetGlobalFloat("_GlobalOutlineWidth", _GlobalOutlineWidth);
Shader.SetGlobalFloat("_GlobalCameraFov", _GlobalCameraFov);
Shader.SetGlobalFloat("_CylinderBlend", _CylinderBlend);
Shader.SetGlobalFloat("_RimHorizonOffset", _RimHorizonOffset);
//Vector Array
_MainParam.Clear();
_MainParam.Add(_MainParam_0);
_MainParam.Add(_MainParam_1);
Shader.SetGlobalVectorArray("_MainParam", _MainParam);
_HighParam1.Clear();
_HighParam1.Add(_HighParam1_0);
_HighParam1.Add(_HighParam1_1);
_HighParam1.Add(_HighParam1_2);
Shader.SetGlobalVectorArray("_HighParam1", _HighParam1);
_HighParam2.Clear();
_HighParam2.Add(_HighParam2_0);
_HighParam2.Add(_HighParam2_1);
Shader.SetGlobalVectorArray("_HighParam2", _HighParam2);
_ColorArray.Clear();
_ColorArray.Add(_ColorArray_0);
_ColorArray.Add(_ColorArray_1);
_ColorArray.Add(_ColorArray_2);
_ColorArray.Add(_ColorArray_3);
_ColorArray.Add(_ColorArray_4);
_ColorArray.Add(_ColorArray_5);
_ColorArray.Add(_ColorArray_6);
_ColorArray.Add(_ColorArray_7);
_ColorArray.Add(_ColorArray_8);
_ColorArray.Add(_ColorArray_9);
Shader.SetGlobalVectorArray("_ColorArray", _ColorArray);
Shader.SetGlobalVector("_Global_FogMinDistance", _Global_FogMinDistance);
Shader.SetGlobalVector("_Global_FogLength", _Global_FogLength);
_DirtRate.Clear();
_DirtRate.Add(_DirtRate_0);
_DirtRate.Add(_DirtRate_1);
_DirtRate.Add(_DirtRate_2);
Shader.SetGlobalFloatArray("_DirtRate", _DirtRate);
Shader.SetGlobalColor("_AmbientColor", _AmbientColor);
}
}