70 lines
2.4 KiB
C#
70 lines
2.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
using System.Reflection;
|
|
|
|
[CustomEditor(typeof(NBPostProcessingManager))]
|
|
public class PostProcessingManagerGUI : Editor
|
|
{
|
|
private NBPostProcessingManager _ppManager;
|
|
public override void OnInspectorGUI()
|
|
{
|
|
|
|
_ppManager = (NBPostProcessingManager)target;
|
|
serializedObject.Update();
|
|
DrawToggle("controllerIndexFlags","_controllerIndexFlags");
|
|
DrawToggle("色散开关",NBPostProcessingManager.chromaticAberrationToggles);
|
|
DrawToggle("径向扭曲开关",NBPostProcessingManager.distortSpeedToggles);
|
|
DrawToggle("径向模糊开关",NBPostProcessingManager.radialBlurToggles);
|
|
#if CINIMACHINE_3_0
|
|
DrawToggle("震屏开关",PostProcessingManager.cameraShakeToggles);
|
|
#endif
|
|
DrawToggle("肌理开关",NBPostProcessingManager.overlayTextureToggles);
|
|
DrawToggle("黑白闪开关",NBPostProcessingManager.flashToggles);
|
|
DrawToggle("暗角开关",NBPostProcessingManager.vignetteToggles);
|
|
DrawToggle32("ShaderFlags", NBPostProcessingManager.material.GetInteger(NBPostProcessFlags.FlagsId));
|
|
|
|
}
|
|
|
|
void DrawToggle(string label, string propertyName)
|
|
{
|
|
int intValue = ReflectIntValue(propertyName);
|
|
DrawToggle(label,intValue);
|
|
}
|
|
|
|
void DrawToggle(string label, int intValue)
|
|
{
|
|
EditorGUILayout.BeginHorizontal();
|
|
EditorGUILayout.LabelField(label);
|
|
EditorGUILayout.LabelField(BinaryIntDrawer.DrawBinaryInt(intValue,8));
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
void DrawToggle32(string label, int intValue)
|
|
{
|
|
EditorGUILayout.BeginHorizontal();
|
|
EditorGUILayout.LabelField(label);
|
|
EditorGUILayout.LabelField(BinaryIntDrawer.DrawBinaryInt(intValue,32));
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
|
|
int ReflectIntValue(string propertyName)
|
|
{
|
|
|
|
FieldInfo privateField = typeof(NBPostProcessingManager).GetField(propertyName, BindingFlags.NonPublic | BindingFlags.Instance);
|
|
|
|
if (privateField != null)
|
|
{
|
|
// 获取私有字段的值
|
|
int value = (int)privateField.GetValue(_ppManager);
|
|
return value;
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("PostProcessingManagerGUI获取变量错误");
|
|
return -1;
|
|
}
|
|
|
|
}
|
|
|
|
} |