NB_FX
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
[CustomEditor(typeof(AnimationSheetHelper))]
|
||||
public class AnimationSheetHelperEditor : Editor
|
||||
{
|
||||
SerializedProperty isParticleBaseShader;
|
||||
SerializedProperty isPostProcessShader;
|
||||
SerializedProperty postProcessingController;
|
||||
SerializedProperty propertyName;
|
||||
|
||||
SerializedProperty xSize;
|
||||
SerializedProperty ySize;
|
||||
|
||||
SerializedProperty manualPlay;
|
||||
SerializedProperty manualPlayePos;
|
||||
SerializedProperty speed;
|
||||
|
||||
SerializedProperty scaleOffset;
|
||||
SerializedProperty mat;
|
||||
SerializedProperty frameIndex;
|
||||
SerializedProperty frameCount;
|
||||
|
||||
private AnimationSheetHelper _target;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
_target = (AnimationSheetHelper)target;
|
||||
|
||||
isParticleBaseShader = serializedObject.FindProperty("isParticleBaseShader");
|
||||
// isPostProcessShader = serializedObject.FindProperty("isPostProcessShader");
|
||||
// postProcessingController = serializedObject.FindProperty("postProcessingController");
|
||||
propertyName = serializedObject.FindProperty("propertyName");
|
||||
|
||||
xSize = serializedObject.FindProperty("xSize");
|
||||
ySize = serializedObject.FindProperty("ySize");
|
||||
|
||||
manualPlay = serializedObject.FindProperty("manualPlay");
|
||||
manualPlayePos = serializedObject.FindProperty("manualPlayePos");
|
||||
speed = serializedObject.FindProperty("speed");
|
||||
|
||||
scaleOffset = serializedObject.FindProperty("scaleOffset");
|
||||
mat = serializedObject.FindProperty("mat");
|
||||
frameIndex = serializedObject.FindProperty("frameIndex");
|
||||
frameCount = serializedObject.FindProperty("frameCount");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
DrawShaderSection();
|
||||
EditorGUILayout.Space(5);
|
||||
DrawAnimationSection();
|
||||
EditorGUILayout.Space(5);
|
||||
DrawRuntimeInfo();
|
||||
EditorGUILayout.Space(8);
|
||||
DrawInitButton();
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
#region Sections
|
||||
|
||||
void DrawShaderSection()
|
||||
{
|
||||
EditorGUILayout.LabelField("Shader 设置", EditorStyles.boldLabel);
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(isParticleBaseShader, new GUIContent("使用 NB Shader"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
_target.InitParticleBaseShaderToggle();
|
||||
EditorUtility.SetDirty(_target);
|
||||
}
|
||||
|
||||
// EditorGUI.BeginChangeCheck();
|
||||
// EditorGUILayout.PropertyField(isPostProcessShader, new GUIContent("使用 后处理扭曲"));
|
||||
// if (EditorGUI.EndChangeCheck())
|
||||
// {
|
||||
// serializedObject.ApplyModifiedProperties();
|
||||
// // _target.InitPostProcessToggle();
|
||||
// EditorUtility.SetDirty(_target);
|
||||
// }
|
||||
|
||||
// if (isPostProcessShader.boolValue)
|
||||
// {
|
||||
// GUI.enabled = false;
|
||||
// EditorGUILayout.PropertyField(postProcessingController);
|
||||
// GUI.enabled = true;
|
||||
// }
|
||||
|
||||
EditorGUILayout.PropertyField(propertyName, new GUIContent("Shader 属性名"));
|
||||
}
|
||||
|
||||
void DrawAnimationSection()
|
||||
{
|
||||
EditorGUILayout.LabelField("序列帧设置", EditorStyles.boldLabel);
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(xSize, new GUIContent("横向帧数量"));
|
||||
EditorGUILayout.PropertyField(ySize, new GUIContent("纵向帧数量"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
_target.Init();
|
||||
EditorUtility.SetDirty(_target);
|
||||
}
|
||||
|
||||
EditorGUILayout.Space(4);
|
||||
EditorGUILayout.PropertyField(manualPlay, new GUIContent("手动控制播放"));
|
||||
|
||||
if (manualPlay.boolValue)
|
||||
{
|
||||
EditorGUILayout.PropertyField(manualPlayePos, new GUIContent("手动播放位置"));
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.PropertyField(speed, new GUIContent("播放速度 fps"));
|
||||
}
|
||||
}
|
||||
|
||||
void DrawRuntimeInfo()
|
||||
{
|
||||
EditorGUILayout.LabelField("运行时信息", EditorStyles.boldLabel);
|
||||
|
||||
GUI.enabled = false;
|
||||
EditorGUILayout.PropertyField(scaleOffset, new GUIContent("Tiling Offset"));
|
||||
EditorGUILayout.PropertyField(mat, new GUIContent("Material"));
|
||||
EditorGUILayout.PropertyField(frameIndex);
|
||||
EditorGUILayout.PropertyField(frameCount);
|
||||
GUI.enabled = true;
|
||||
}
|
||||
|
||||
void DrawInitButton()
|
||||
{
|
||||
if (GUILayout.Button("初始化", GUILayout.Height(28)))
|
||||
{
|
||||
_target.Init();
|
||||
EditorUtility.SetDirty(_target);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user