重构inspector!

This commit is contained in:
SoulliesOfficial
2025-04-14 17:49:47 -04:00
parent bbca8b43fe
commit 11543b4997
81 changed files with 1037 additions and 903 deletions

View File

@@ -44,12 +44,13 @@ namespace Ichni.RhythmGame
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Bloom Shake");
var effectTimeField = inspector.GenerateInputField(this, container, "Bloom Time", nameof(duration));
var bloomPeakField = inspector.GenerateInputField(this, container, "Bloom Peak", nameof(peak));
var intensityCurveButton = inspector.GenerateButton(this, container, "Intensity Curve", () =>
var effectSettings = container.GenerateSubcontainer(3);
var effectTimeField = inspector.GenerateInputField(this, effectSettings, "Bloom Time", nameof(duration));
var bloomPeakField = inspector.GenerateInputField(this, effectSettings, "Bloom Peak", nameof(peak));
var intensityCurveButton = inspector.GenerateButton(this, effectSettings, "Intensity Curve", () =>
{
var intensityCurveWindow = inspector.GenerateCompositeParameterWindow(this, "Intensity Curve", nameof(intensityCurve));
intensityCurveWindow.SetAsCustomCurve();
var intensityCurveWindow =
inspector.GenerateCompositeParameterWindow(this, "Intensity Curve", nameof(intensityCurve)).SetAsCustomCurve();
});
}
}

View File

@@ -48,11 +48,12 @@ namespace Ichni.RhythmGame
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Camera Shake");
var durationInputField = inspector.GenerateInputField(this, container, "Duration", nameof(duration));
var frequencyInputField = inspector.GenerateInputField(this, container, "Frequency", nameof(frequency));
var amplitudeXInputField = inspector.GenerateInputField(this, container, "Amplitude X", nameof(amplitudeX));
var amplitudeYInputField = inspector.GenerateInputField(this, container, "Amplitude Y", nameof(amplitudeY));
var amplitudeZInputField = inspector.GenerateInputField(this, container, "Amplitude Z", nameof(amplitudeZ));
var effectSettings = container.GenerateSubcontainer(3);
var durationInputField = inspector.GenerateInputField(this, effectSettings, "Duration", nameof(duration));
var frequencyInputField = inspector.GenerateInputField(this, effectSettings, "Frequency", nameof(frequency));
var amplitudeXInputField = inspector.GenerateInputField(this, effectSettings, "Amplitude X", nameof(amplitudeX));
var amplitudeYInputField = inspector.GenerateInputField(this, effectSettings, "Amplitude Y", nameof(amplitudeY));
var amplitudeZInputField = inspector.GenerateInputField(this, effectSettings, "Amplitude Z", nameof(amplitudeZ));
}
}

View File

@@ -42,12 +42,13 @@ namespace Ichni.RhythmGame
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Chromatic Aberration");
var effectTimeField = inspector.GenerateInputField(this, container, "Duration", nameof(duration));
var bloomPeakField = inspector.GenerateInputField(this, container, "Peak Value", nameof(peak));
var intensityCurveButton = inspector.GenerateButton(this, container, "Intensity Curve", () =>
var effectSettings = container.GenerateSubcontainer(3);
var effectTimeField = inspector.GenerateInputField(this, effectSettings, "Duration", nameof(duration));
var bloomPeakField = inspector.GenerateInputField(this, effectSettings, "Peak Value", nameof(peak));
var intensityCurveButton = inspector.GenerateButton(this, effectSettings, "Intensity Curve", () =>
{
var intensityCurveWindow = inspector.GenerateCompositeParameterWindow(this, "Intensity Curve", nameof(intensityCurve));
intensityCurveWindow.SetAsCustomCurve();
var intensityCurveWindow =
inspector.GenerateCompositeParameterWindow(this, "Intensity Curve", nameof(intensityCurve)).SetAsCustomCurve();
});
}
}

View File

@@ -62,8 +62,9 @@ namespace Ichni.RhythmGame
Inspector inspectorMain = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Enable Control");
var connectedGameElementInputField = inspector.GenerateInputField(container, "Game Element Name");
var connectGameElementButton = inspector.GenerateButton(this, container, "Connect Game Element", () =>
var effectSettings = container.GenerateSubcontainer(3);
var connectedGameElementInputField = inspector.GenerateInputField(effectSettings, "Game Element Name");
var connectGameElementButton = inspector.GenerateButton(this, effectSettings, "Connect Game Element", () =>
{
connectedGameElement = EditorManager.instance.beatmapContainer.gameElementList
.First(e => e.elementName == connectedGameElementInputField.GetValue<string>());
@@ -77,14 +78,15 @@ namespace Ichni.RhythmGame
});
string ShowConnection() => connectedGameElement == null ? "No Game Element Connected" : "Connected With: " + connectedGameElement.elementName;
var connectHintText = inspector.GenerateHintText(this, container, ShowConnection);
var connectHintText = inspector.GenerateHintText(this, effectSettings, ShowConnection);
var connectedVariableNameInputField = inspector.GenerateInputField(this, container, "Connected Variable Name", nameof(connectedVariableName));
var enableValueInputField = inspector.GenerateInputField(this, container, "Enable Value", nameof(enableValue));
var connectedVariableNameInputField = inspector.GenerateInputField(this, effectSettings, "Connected Variable Name", nameof(connectedVariableName));
var enableValueInputField = inspector.GenerateInputField(this, effectSettings, "Enable Value", nameof(enableValue));
var useExpressionToggle = inspector.GenerateToggle(this, container, "Use Expression", nameof(useExpression));
// 自定义表达式暂时不可用
var useExpressionToggle = inspector.GenerateToggle(this, effectSettings, "Use Expression", nameof(useExpression));
useExpressionToggle.toggle.interactable = false;
var expressionInputField = inspector.GenerateInputField(this, container, "Expression", nameof(expression));
var expressionInputField = inspector.GenerateInputField(this, effectSettings, "Expression", nameof(expression));
expressionInputField.inputField.interactable = false;
}
}

View File

@@ -45,11 +45,12 @@ namespace Ichni.RhythmGame
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Set Integer");
var targetVariableNameInputField = inspector.GenerateInputField(this, container, "Target Variable Name", nameof(targetVariableName));
var targetValueInputField = inspector.GenerateInputField(this, container, "Target Value", nameof(targetValue));
var isRandomToggle = inspector.GenerateToggle(this, container, "Is Random", nameof(isRandom));
var minValueInputField = inspector.GenerateInputField(this, container, "Min Value", nameof(minValue));
var maxValueInputField = inspector.GenerateInputField(this, container, "Max Value", nameof(maxValue));
var effectSettings = container.GenerateSubcontainer(3);
var targetVariableNameInputField = inspector.GenerateInputField(this, effectSettings, "Target Variable Name", nameof(targetVariableName));
var targetValueInputField = inspector.GenerateInputField(this, effectSettings, "Target Value", nameof(targetValue));
var isRandomToggle = inspector.GenerateToggle(this, effectSettings, "Is Random", nameof(isRandom));
var minValueInputField = inspector.GenerateInputField(this, effectSettings, "Min Value", nameof(minValue));
var maxValueInputField = inspector.GenerateInputField(this, effectSettings, "Max Value", nameof(maxValue));
}
}

View File

@@ -50,7 +50,8 @@ namespace Ichni.RhythmGame
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
Inspector inspectorMain = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Time Effects Collection");
var timeInputField = inspector.GenerateInputField(this, container, "Time", nameof(time));
var collectionSettings = container.GenerateSubcontainer(3);
var timeInputField = inspector.GenerateInputField(this, collectionSettings, "Time", nameof(time));
}
}

View File

@@ -51,16 +51,18 @@ namespace Ichni.RhythmGame
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Vignette");
var durationField = inspector.GenerateInputField(this, container, "Duration", nameof(duration));
var peakField = inspector.GenerateInputField(this, container, "Peak Value", nameof(peak));
var smoothnessField = inspector.GenerateInputField(this, container, "Smoothness", nameof(smoothness));
var colorField = inspector.GenerateBaseColorPicker(this, container, "Color", nameof(color));
var intensityCurveButton = inspector.GenerateButton(this, container, "Intensity Curve", () =>
var effectSettings = container.GenerateSubcontainer(3);
var durationField = inspector.GenerateInputField(this, effectSettings, "Duration", nameof(duration));
var peakField = inspector.GenerateInputField(this, effectSettings, "Peak Value", nameof(peak));
var smoothnessField = inspector.GenerateInputField(this, effectSettings, "Smoothness", nameof(smoothness));
var intensityCurveButton = inspector.GenerateButton(this, effectSettings, "Intensity Curve", () =>
{
var intensityCurveWindow = inspector.GenerateCompositeParameterWindow(this, "Intensity Curve", nameof(intensityCurve));
intensityCurveWindow.SetAsCustomCurve();
var intensityCurveWindow =
inspector.GenerateCompositeParameterWindow(this, "Intensity Curve", nameof(intensityCurve)).SetAsCustomCurve();
});
container.SetDeviver(1);
var colorSettings = container.GenerateSubcontainer(3);
var colorField = inspector.GenerateBaseColorPicker(this, colorSettings, "Color", nameof(color));
}
}