Files
ichni_Official/Packages/NBPostProcessing/Editor/PostProcessingManagerGUI.cs

70 lines
2.4 KiB
C#
Raw Permalink Normal View History

2025-07-21 05:42:20 -04:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Reflection;
2025-08-27 21:45:18 -04:00
[CustomEditor(typeof(PostProcessingManager))]
2025-07-21 05:42:20 -04:00
public class PostProcessingManagerGUI : Editor
{
2025-08-27 21:45:18 -04:00
private PostProcessingManager _ppManager;
2025-07-21 05:42:20 -04:00
public override void OnInspectorGUI()
{
2025-08-27 21:45:18 -04:00
_ppManager = (PostProcessingManager)target;
2025-07-21 05:42:20 -04:00
serializedObject.Update();
DrawToggle("controllerIndexFlags","_controllerIndexFlags");
2025-08-27 21:45:18 -04:00
DrawToggle("色散开关",PostProcessingManager.chromaticAberrationToggles);
DrawToggle("径向扭曲开关",PostProcessingManager.distortSpeedToggles);
DrawToggle("径向模糊开关",PostProcessingManager.radialBlurToggles);
2025-07-21 05:42:20 -04:00
#if CINIMACHINE_3_0
DrawToggle("震屏开关",PostProcessingManager.cameraShakeToggles);
#endif
2025-08-27 21:45:18 -04:00
DrawToggle("肌理开关",PostProcessingManager.overlayTextureToggles);
DrawToggle("黑白闪开关",PostProcessingManager.flashToggles);
DrawToggle("暗角开关",PostProcessingManager.vignetteToggles);
DrawToggle32("ShaderFlags", PostProcessingManager.material.GetInteger(NBPostProcessFlags.FlagsId));
2025-07-21 05:42:20 -04:00
}
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)
{
2025-08-27 21:45:18 -04:00
FieldInfo privateField = typeof(PostProcessingManager).GetField(propertyName, BindingFlags.NonPublic | BindingFlags.Instance);
2025-07-21 05:42:20 -04:00
if (privateField != null)
{
// 获取私有字段的值
int value = (int)privateField.GetValue(_ppManager);
return value;
}
else
{
Debug.LogError("PostProcessingManagerGUI获取变量错误");
return -1;
}
}
}