This commit is contained in:
SoulliesOfficial
2026-06-09 01:43:55 -04:00
parent 0fb72f5bba
commit 5fc1392747
171 changed files with 30149 additions and 22331 deletions

View File

@@ -22,52 +22,31 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
public override void SetUpInspector()
{
// base.SetUpInspector() 会自动生成 ColorSubmodule 的 UIBaseColor + EmissionColor
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
// ── 星座核心参数 ──────────────────────────────────────────────
var mainContainer = inspector.GenerateContainer("DTMConstellation");
var mainSettings = mainContainer.GenerateSubcontainer(3);
inspector.GenerateInputField(this, mainSettings, "Max Particles", nameof(maxParticles));
inspector.GenerateInputField(this, mainSettings, "Max Line Count", nameof(maxLineCount));
inspector.GenerateInputField(this, mainSettings, "Max Connections Per Star", nameof(maxConnectionsPerStar));
inspector.GenerateInputField(this, mainSettings, "Max Connection Distance", nameof(maxConnectionDistance));
// ── 散布体积 ──────────────────────────────────────────────────
var spreadContainer = inspector.GenerateContainer("Spread Volume");
var spreadSettings = spreadContainer.GenerateSubcontainer(1);
inspector.GenerateVector3InputField(this, spreadSettings, "Spread Size", nameof(spreadSize));
// ── 视觉参数 ─────────────────────────────────────────────────
var visualContainer = inspector.GenerateContainer("Visual");
var visualSettings = visualContainer.GenerateSubcontainer(3);
inspector.GenerateInputField(this, visualSettings, "Active Star Size", nameof(activeStarSize));
inspector.GenerateInputField(this, visualSettings, "Line Width", nameof(lineWidth));
// ── 粒子运动 ─────────────────────────────────────────────────
var motionContainer = inspector.GenerateContainer("Particle Motion");
var motionSettings = motionContainer.GenerateSubcontainer(1);
inspector.GenerateVector3InputField(this, motionSettings, "Orbital Velocity", nameof(orbitalVelocity));
inspector.GenerateInputField(this, motionSettings, "Angular Velocity", nameof(angularVelocity));
// ── 刷新操作按钮 ──────────────────────────────────────────────
var actionContainer = inspector.GenerateContainer("Constellation Actions");
var actionSettings = actionContainer.GenerateSubcontainer(2);
inspector.GenerateButton(this, actionSettings, "Refresh This", () =>
{
GenerateSingleConstellation();
});
inspector.GenerateButton(this, actionSettings, "Refresh All", () =>
{
var allConstellations = FindObjectsByType<DTMConstellation>(FindObjectsSortMode.None);
foreach (var c in allConstellations)
c.GenerateSingleConstellation();
});
InspectorBuilder.For(this)
.Section("DTMConstellation")
.InputField(nameof(maxParticles), "Max Particles")
.InputField(nameof(maxLineCount), "Max Line Count")
.InputField(nameof(maxConnectionsPerStar), "Max Connections Per Star")
.InputField(nameof(maxConnectionDistance), "Max Connection Distance")
.Section("Spread Volume")
.Vector3Field(nameof(spreadSize), "Spread Size")
.Section("Visual")
.InputField(nameof(activeStarSize), "Active Star Size")
.InputField(nameof(lineWidth), "Line Width")
.Section("Particle Motion")
.Vector3Field(nameof(orbitalVelocity), "Orbital Velocity")
.InputField(nameof(angularVelocity), "Angular Velocity")
.Section("Constellation Actions")
.Button("Refresh This", GenerateSingleConstellation)
.Button("Refresh All", () =>
{
var allConstellations = FindObjectsByType<DTMConstellation>(FindObjectsSortMode.None);
foreach (var c in allConstellations)
c.GenerateSingleConstellation();
})
.Build();
}
#endregion
}

View File

@@ -24,28 +24,19 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMGlobalFog");
var subcontainer = container.GenerateSubcontainer(2);
inspector.GenerateSlider(this, subcontainer, "Fog Intensity", nameof(fogIntensity), min: 0, max: 5).AddListenerFunction(UpdateFogProperties);
var colorStartContainer = container.GenerateSubcontainer(1, 240);
inspector.GenerateEmissionColorPicker(this, colorStartContainer, "Fog Color Start", "NULL", nameof(fogColorStart), nameof(fogColorStartIntensity))
.AddListenerFunction(UpdateFogProperties);
var colorEndContainer = container.GenerateSubcontainer(1, 240);
inspector.GenerateEmissionColorPicker(this, colorEndContainer, "Fog Color End", "NULL", nameof(fogColorEnd), nameof(fogColorEndIntensity))
.AddListenerFunction(UpdateFogProperties);
inspector.GenerateSlider(this, subcontainer, "Fog Color Duo", nameof(fogColorDuo), min: 0, max: 1).AddListenerFunction(UpdateFogProperties);
inspector.GenerateSlider(this, subcontainer, "Skybox Fog Intensity", nameof(skyboxFogIntensity), min: 0, max: 5).AddListenerFunction(UpdateFogProperties);
inspector.GenerateSlider(this, subcontainer, "Skybox Fog Height", nameof(skyboxFogHeight), min: 0, max: 10).AddListenerFunction(UpdateFogProperties);
inspector.GenerateSlider(this, subcontainer, "Skybox Fog Falloff", nameof(skyboxFogFalloff), min: 0, max: 10).AddListenerFunction(UpdateFogProperties);
inspector.GenerateSlider(this, subcontainer, "Skybox Fog Offset", nameof(skyboxFogOffset), min: -10, max: 10).AddListenerFunction(UpdateFogProperties);
inspector.GenerateSlider(this, subcontainer, "Skybox Fog Bottom", nameof(skyboxFogBottom), min: -10, max: 10).AddListenerFunction(UpdateFogProperties);
inspector.GenerateSlider(this, subcontainer, "Skybox Fog Fill", nameof(skyboxFogFill), min: 0, max: 5).AddListenerFunction(UpdateFogProperties);
InspectorBuilder.For(this)
.Section("DTMGlobalFog")
.Slider(nameof(fogIntensity), 0, 5, "Fog Intensity").OnChanged(UpdateFogProperties)
.EmissionColorPicker(nameof(fogColorStart), "NULL", nameof(fogColorStartIntensity), "Fog Color Start").OnChanged(UpdateFogProperties)
.EmissionColorPicker(nameof(fogColorEnd), "NULL", nameof(fogColorEndIntensity), "Fog Color End").OnChanged(UpdateFogProperties)
.Slider(nameof(fogColorDuo), 0, 1, "Fog Color Duo").OnChanged(UpdateFogProperties)
.Slider(nameof(skyboxFogIntensity), 0, 5, "Skybox Fog Intensity").OnChanged(UpdateFogProperties)
.Slider(nameof(skyboxFogHeight), 0, 10, "Skybox Fog Height").OnChanged(UpdateFogProperties)
.Slider(nameof(skyboxFogFalloff), 0, 10, "Skybox Fog Falloff").OnChanged(UpdateFogProperties)
.Slider(nameof(skyboxFogOffset), -10, 10, "Skybox Fog Offset").OnChanged(UpdateFogProperties)
.Slider(nameof(skyboxFogBottom), -10, 10, "Skybox Fog Bottom").OnChanged(UpdateFogProperties)
.Slider(nameof(skyboxFogFill), 0, 5, "Skybox Fog Fill").OnChanged(UpdateFogProperties)
.Build();
}
#endregion
}

View File

@@ -21,28 +21,21 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMFramesFloor");
var subcontainer = container.GenerateSubcontainer(3);
inspector.GenerateSlider(this, subcontainer, "Pattern Size X", nameof(patternSizeX), min: 1, max: 500).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Pattern Size Y", nameof(patternSizeY), min: 1, max: 500).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Grid Density", nameof(gridDensity), min: 0.1f, max: 10).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Time Angle", nameof(timeAngle), min: 0, max: 1).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Step A", nameof(stepA), min: 0, max: 1).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Step B", nameof(stepB), min: 0, max: 1).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Base Speed", nameof(baseSpeed), min: 0, max: 10).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateToggle(this, subcontainer, "Enable Outer Border", nameof(enableOuterBorder)).AddListenerFunction(UpdateMaterialProperties);
var colorContainer = container.GenerateSubcontainer(1, 280f);
inspector.GenerateBaseColorPicker(this, colorContainer, "Outer Border Color", nameof(outerBorderColor)).AddListenerFunction(UpdateMaterialProperties);
var subcontainer2 = container.GenerateSubcontainer(3);
inspector.GenerateSlider(this, subcontainer2, "Outer Border Width", nameof(outerBorderWidth), min: 0, max: 0.5f).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer2, "Fade Far", nameof(fadeFar), min: 1, max: 500).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer2, "Fade Near", nameof(fadeNear), min: 0, max: 200).AddListenerFunction(UpdateMaterialProperties);
InspectorBuilder.For(this)
.Section("DTMFramesFloor")
.Slider(nameof(patternSizeX), 1, 500, "Pattern Size X").OnChanged(UpdateMaterialProperties)
.Slider(nameof(patternSizeY), 1, 500, "Pattern Size Y").OnChanged(UpdateMaterialProperties)
.Slider(nameof(gridDensity), 0.1f, 10, "Grid Density").OnChanged(UpdateMaterialProperties)
.Slider(nameof(timeAngle), 0, 1, "Time Angle").OnChanged(UpdateMaterialProperties)
.Slider(nameof(stepA), 0, 1, "Step A").OnChanged(UpdateMaterialProperties)
.Slider(nameof(stepB), 0, 1, "Step B").OnChanged(UpdateMaterialProperties)
.Slider(nameof(baseSpeed), 0, 10, "Base Speed").OnChanged(UpdateMaterialProperties)
.Toggle(nameof(enableOuterBorder), "Enable Outer Border").OnChanged(UpdateMaterialProperties)
.ColorPicker(nameof(outerBorderColor), "Outer Border Color").OnChanged(UpdateMaterialProperties)
.Slider(nameof(outerBorderWidth), 0, 0.5f, "Outer Border Width").OnChanged(UpdateMaterialProperties)
.Slider(nameof(fadeFar), 1, 500, "Fade Far").OnChanged(UpdateMaterialProperties)
.Slider(nameof(fadeNear), 0, 200, "Fade Near").OnChanged(UpdateMaterialProperties)
.Build();
}
#endregion
}

View File

@@ -21,25 +21,22 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMRandomGridTube");
var subcontainer = container.GenerateSubcontainer(2);
inspector.GenerateSlider(this, subcontainer, "Pattern Size X", nameof(patternSizeX), min: 0, max: 20).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Pattern Size Y", nameof(patternSizeY), min: 0, max: 20).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Grid Density", nameof(gridDensity), min: 0, max: 10).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Time Angle", nameof(timeAngle), min: 0, max: 6.28f).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Step A", nameof(stepA), min: 0, max: 1).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Step B", nameof(stepB), min: 0, max: 1).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Base Speed", nameof(baseSpeed), min: 0, max: 3).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Seam Rotation", nameof(seamRotation), min: -180, max: 180).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Seam Fade Width", nameof(seamFadeWidth), min: 0, max: 5).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Seam Fade Smoothness", nameof(seamFadeSmoothness), min: 0, max: 5).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Fade Far", nameof(fadeFar), min: 0, max: 500).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Fade Near", nameof(fadeNear), min: 0, max: 100).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateSlider(this, subcontainer, "Tube Radius", nameof(tubeRadius), min: 0, max: 50).AddListenerFunction(UpdateMaterialProperties);
InspectorBuilder.For(this)
.Section("DTMRandomGridTube")
.Slider(nameof(patternSizeX), 0, 20, "Pattern Size X").OnChanged(UpdateMaterialProperties)
.Slider(nameof(patternSizeY), 0, 20, "Pattern Size Y").OnChanged(UpdateMaterialProperties)
.Slider(nameof(gridDensity), 0, 10, "Grid Density").OnChanged(UpdateMaterialProperties)
.Slider(nameof(timeAngle), 0, 6.28f, "Time Angle").OnChanged(UpdateMaterialProperties)
.Slider(nameof(stepA), 0, 1, "Step A").OnChanged(UpdateMaterialProperties)
.Slider(nameof(stepB), 0, 1, "Step B").OnChanged(UpdateMaterialProperties)
.Slider(nameof(baseSpeed), 0, 3, "Base Speed").OnChanged(UpdateMaterialProperties)
.Slider(nameof(seamRotation), -180, 180, "Seam Rotation").OnChanged(UpdateMaterialProperties)
.Slider(nameof(seamFadeWidth), 0, 5, "Seam Fade Width").OnChanged(UpdateMaterialProperties)
.Slider(nameof(seamFadeSmoothness), 0, 5, "Seam Fade Smoothness").OnChanged(UpdateMaterialProperties)
.Slider(nameof(fadeFar), 0, 500, "Fade Far").OnChanged(UpdateMaterialProperties)
.Slider(nameof(fadeNear), 0, 100, "Fade Near").OnChanged(UpdateMaterialProperties)
.Slider(nameof(tubeRadius), 0, 50, "Tube Radius").OnChanged(UpdateMaterialProperties)
.Build();
}
#endregion
}

View File

@@ -33,8 +33,49 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
public override void SetUpInspector()
{
base.SetUpInspector();
// 让强劲的特性打包流去替接管全部 20 几个杂毛元素生成,并自动分装成横列!
Ichni.Editor.DynamicUIAutoBuilder.AutoBuild(this, EditorManager.instance.uiManager.inspector);
InspectorBuilder.For(this)
.Section("DTMStarrySkybox - Sky")
.ColorPicker(nameof(skyColor), "Sky Color")
.ColorPicker(nameof(horizon), "Horizon")
.Slider(nameof(horizonStrength), 0, 5, "Horizon Strength")
.Span(2)
.Slider(nameof(horizonSkyHeight), 0, 2, "Horizon Sky Height")
.Span(2)
.Section("DTMStarrySkybox - Stars")
.Toggle(nameof(useStarMap), "Use Star Map")
.Slider(nameof(starDensity), 0, 200, "Star Density")
.Span(2)
.Slider(nameof(starSize), 0, 300, "Star Size")
.Span(2)
.ColorPicker(nameof(starColor), "Star Color")
.Toggle(nameof(preventStarsInFrontOfSun), "Prevent Stars In Front Of Sun")
.InputField(nameof(starMapTextureName), "Star Map Texture (Name)")
.Span(3)
.Section("DTMStarrySkybox - Sun")
.Toggle(nameof(haveSun), "Have Sun")
.InputField(nameof(sunMaskTextureName), "Sun Mask Texture (Name)")
.Span(3)
.Slider(nameof(sunMaskSize), 0, 0.2f, "Sun Mask Size")
.Span(2)
.Slider(nameof(sunMaskSpherize), 0, 30, "Sun Mask Spherize")
.Span(2)
.Slider(nameof(sunDiscSize), 0, 5, "Sun Disc Size")
.Span(2)
.ColorPicker(nameof(sunColorOne), "Sun Color One")
.ColorPicker(nameof(sunColorTwo), "Sun Color Two")
.Slider(nameof(sunGradientStrength), 0, 10, "Sun Gradient Strength")
.Span(2)
.Slider(nameof(sunGradientHeight), 0, 3, "Sun Gradient Height")
.Span(2)
.Section("DTMStarrySkybox - Fog")
.Slider(nameof(fogHeight), 0, 5, "Fog Height")
.Span(2)
.Slider(nameof(fogPower), 0, 1, "Fog Power")
.Span(2)
.Slider(nameof(fogContrast), 0, 200, "Fog Contrast")
.Span(2)
.Build();
}
#endregion
}

View File

@@ -17,58 +17,37 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMTrail");
var subcontainer = container.GenerateSubcontainer(3);
IHaveInspection insp = EditorManager.instance.uiManager.inspector;
var visibleTimeLengthButton = inspector.GenerateButton(this, subcontainer, "Visible Time Length", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Visible Time Length", nameof(visibleTimeLength));
ew.SetAsFlexibleFloat();
});
var enableTimeListButton = inspector.GenerateButton(this, subcontainer, "Enable Head Time List", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Enable Head Time List", nameof(enableTimes));
ew.SetAsFlexibleBool();
});
var headRotateSpeedButton = inspector.GenerateButton(this, subcontainer, "Head Rotate Speed", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Head Rotate Speed", nameof(headRotateSpeed));
ew.SetAsFlexibleFloat();
});
var enableProcessTimeSlider =
inspector.GenerateSlider(this, subcontainer, "Enable Process Time", nameof(enableProcessTime), min: 0, max: 3);
var headSizeSlider =
inspector.GenerateSlider(this, subcontainer, "Head Size", nameof(headSize), min: 0, max: 10);
var curveSettings = container.GenerateSubcontainer(3);
var widthCurveButton = inspector.GenerateButton(this, curveSettings, "Width Curve", () =>
{
var window = inspector.GenerateCompositeParameterWindow(this, "Width Curve", nameof(widthCurve));
window.SetAsCustomCurve();
window.closeButton.onClick.AddListener(() => trailRenderer.widthCurve = widthCurve);
});
var colorSettings = container.GenerateSubcontainer(3);
var gradientColorKeysButton = inspector.GenerateButton(this, colorSettings, "Gradient Color Keys", () =>
{
var gradientWindow = inspector.GenerateCompositeParameterWindow(this, "Gradient Color Keys", nameof(trailAlphaGradient));
gradientWindow.SetAsGradientColorKeys();
gradientWindow.closeButton.onClick.AddListener(() => trailRenderer.colorGradient = trailAlphaGradient);
});
var gradientAlphaKeysButton = inspector.GenerateButton(this, colorSettings, "Gradient Alpha Keys", () =>
{
var gradientWindow = inspector.GenerateCompositeParameterWindow(this, "Gradient Alpha Keys", nameof(trailAlphaGradient));
gradientWindow.SetAsGradientAlphaKeys();
gradientWindow.closeButton.onClick.AddListener(() => trailRenderer.colorGradient = trailAlphaGradient);
});
InspectorBuilder.For(this)
.Section("DTMTrail")
.Button("Visible Time Length", () =>
insp.GenerateCompositeParameterWindow(this, "Visible Time Length", nameof(visibleTimeLength)).SetAsFlexibleFloat())
.Button("Enable Head Time List", () =>
insp.GenerateCompositeParameterWindow(this, "Enable Head Time List", nameof(enableTimes)).SetAsFlexibleBool())
.Button("Head Rotate Speed", () =>
insp.GenerateCompositeParameterWindow(this, "Head Rotate Speed", nameof(headRotateSpeed)).SetAsFlexibleFloat())
.Slider(nameof(enableProcessTime), 0, 3, "Enable Process Time")
.Slider(nameof(headSize), 0, 10, "Head Size")
.Button("Width Curve", () =>
{
var window = insp.GenerateCompositeParameterWindow(this, "Width Curve", nameof(widthCurve));
window.SetAsCustomCurve();
window.closeButton.onClick.AddListener(() => trailRenderer.widthCurve = widthCurve);
})
.Button("Gradient Color Keys", () =>
{
var gradientWindow = insp.GenerateCompositeParameterWindow(this, "Gradient Color Keys", nameof(trailAlphaGradient));
gradientWindow.SetAsGradientColorKeys();
gradientWindow.closeButton.onClick.AddListener(() => trailRenderer.colorGradient = trailAlphaGradient);
})
.Button("Gradient Alpha Keys", () =>
{
var gradientWindow = insp.GenerateCompositeParameterWindow(this, "Gradient Alpha Keys", nameof(trailAlphaGradient));
gradientWindow.SetAsGradientAlphaKeys();
gradientWindow.closeButton.onClick.AddListener(() => trailRenderer.colorGradient = trailAlphaGradient);
})
.Build();
}
#endregion
}

View File

@@ -7,8 +7,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Bad Burst");
InspectorBuilder.For(this)
.Section("DTM Note Bad Burst")
.HintText("No configurable parameters")
.Build();
}
#endregion
}

View File

@@ -7,11 +7,11 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Generate Expand");
var subcontainer = container.GenerateSubcontainer(3);
var generateTimeField = inspector.GenerateInputField(this, subcontainer, "Generate Time", nameof(generateTime));
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
InspectorBuilder.For(this)
.Section("DTM Note Generate Expand")
.InputField(nameof(generateTime), "Generate Time")
.InputField(nameof(effectTime), "Effect Time")
.Build();
}
#endregion
}

View File

@@ -7,11 +7,11 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Generate Expand");
var subcontainer = container.GenerateSubcontainer(3);
var generateTimeField = inspector.GenerateInputField(this, subcontainer, "Generate Time", nameof(generateTime));
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
InspectorBuilder.For(this)
.Section("DTM Note Generate Extend")
.InputField(nameof(generateTime), "Generate Time")
.InputField(nameof(effectTime), "Effect Time")
.Build();
}
#endregion
}

View File

@@ -7,8 +7,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Good Burst");
InspectorBuilder.For(this)
.Section("DTM Note Good Burst")
.HintText("No configurable parameters")
.Build();
}
#endregion
}

View File

@@ -7,9 +7,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Basic Note Holding Expand");
var subcontainer = container.GenerateSubcontainer(3);
InspectorBuilder.For(this)
.Section("DTM Note Holding Breath")
.HintText("No configurable parameters")
.Build();
}
#endregion
}

View File

@@ -7,10 +7,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Miss Transparent");
var subcontainer = container.GenerateSubcontainer(3);
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
InspectorBuilder.For(this)
.Section("DTM Note Miss Transparent")
.InputField(nameof(effectTime), "Effect Time")
.Build();
}
#endregion
}

View File

@@ -7,8 +7,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Perfect Burst");
InspectorBuilder.For(this)
.Section("DTM Note Perfect Burst")
.HintText("No configurable parameters")
.Build();
}
#endregion
}

View File

@@ -7,16 +7,15 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Ripple Effect");
var effectSettings1 = container.GenerateSubcontainer(3);
var rippleTimeInputField = inspector.GenerateInputField(this, effectSettings1, "Ripple Time", nameof(rippleTime));
var effectSettings2 = container.GenerateSubcontainer(1);
var emissionColorPicker = inspector.GenerateEmissionColorPicker(this, effectSettings2, "Color", "NULL", nameof(emissionColor), nameof(emissionIntensity));
var positionOffsetInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Position Offset", nameof(positionOffset));
var eulerAnglesInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Euler Angles", nameof(eulerAnglesOffset));
var scaleInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Scale", nameof(scale));
SetRemove(effectSettings2);
InspectorBuilder.For(this)
.Section("DTM Ripple Effect")
.InputField(nameof(rippleTime), "Ripple Time")
.EmissionColorPicker(nameof(emissionColor), "NULL", nameof(emissionIntensity), "Color")
.Vector3Field(nameof(positionOffset), "Position Offset")
.Vector3Field(nameof(eulerAnglesOffset), "Euler Angles")
.Vector3Field(nameof(scale), "Scale")
.Button("Remove", () => { nowEffectState = EffectState.Before; AccommodatingList.Remove(this); EditorManager.instance.uiManager.inspector.SetInspector(attachedGameElement); })
.Build();
}
#endregion
}

View File

@@ -17,55 +17,33 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
[NonSerialized] public Material skyboxMaterial;
// --- Sky ---
[Ichni.Editor.DynamicUIEmissionColor("Sky Color", Group = "DTMStarrySkybox - Sky")]
public Color skyColor = Color.blue;
[Ichni.Editor.DynamicUIEmissionColor("Horizon", Group = "DTMStarrySkybox - Sky")]
public Color horizon = Color.cyan;
[Ichni.Editor.DynamicUISlider("Horizon Strength", Group = "DTMStarrySkybox - Sky", Span = 2, Min = 0, Max = 5)]
public float horizonStrength = 2f;
[Ichni.Editor.DynamicUISlider("Horizon Sky Height", Group = "DTMStarrySkybox - Sky", Span = 2, Min = 0, Max = 2)]
public float horizonSkyHeight = 0.7f;
// --- Stars ---
[Ichni.Editor.DynamicUI("Use Star Map", Group = "DTMStarrySkybox - Stars")]
public bool useStarMap = true;
[Ichni.Editor.DynamicUISlider("Star Density", Group = "DTMStarrySkybox - Stars", Span = 2, Min = 0, Max = 200)]
public float starDensity = 30f;
[Ichni.Editor.DynamicUISlider("Star Size", Group = "DTMStarrySkybox - Stars", Span = 2, Min = 0, Max = 300)]
public float starSize = 75f;
[Ichni.Editor.DynamicUIEmissionColor("Star Color", Group = "DTMStarrySkybox - Stars")]
public Color starColor = Color.white;
[Ichni.Editor.DynamicUI("Prevent Stars In Front Of Sun", Group = "DTMStarrySkybox - Stars")]
public bool preventStarsInFrontOfSun = true;
[Ichni.Editor.DynamicUI("Star Map Texture (Name)", Group = "DTMStarrySkybox - Stars", Span = 3)]
public string starMapTextureName = "None"; // 较长文本强行占满全行
public string starMapTextureName = "None";
// --- Sun Mask ---
[Ichni.Editor.DynamicUI("Have Sun", Group = "DTMStarrySkybox - Sun")]
public bool haveSun = false;
[Ichni.Editor.DynamicUI("Sun Mask Texture (Name)", Group = "DTMStarrySkybox - Sun", Span = 3)]
public string sunMaskTextureName = "None";
[Ichni.Editor.DynamicUISlider("Sun Mask Size", Group = "DTMStarrySkybox - Sun", Span = 2, Min = 0, Max = 0.2f)]
public float sunMaskSize = 0.02f;
[Ichni.Editor.DynamicUISlider("Sun Mask Spherize", Group = "DTMStarrySkybox - Sun", Span = 2, Min = 0, Max = 30)]
public float sunMaskSpherize = 13.2f;
[Ichni.Editor.DynamicUISlider("Sun Disc Size", Group = "DTMStarrySkybox - Sun", Span = 2, Min = 0, Max = 5)]
public float sunDiscSize = 1f;
[Ichni.Editor.DynamicUIEmissionColor("Sun Color One", Group = "DTMStarrySkybox - Sun")]
public Color sunColorOne = Color.white;
[Ichni.Editor.DynamicUIEmissionColor("Sun Color Two", Group = "DTMStarrySkybox - Sun")]
public Color sunColorTwo = Color.white;
[Ichni.Editor.DynamicUISlider("Sun Gradient Strength", Group = "DTMStarrySkybox - Sun", Span = 2, Min = 0, Max = 10)]
public float sunGradientStrength = 3.7f;
[Ichni.Editor.DynamicUISlider("Sun Gradient Height", Group = "DTMStarrySkybox - Sun", Span = 2, Min = 0, Max = 3)]
public float sunGradientHeight = 1.23f;
// --- Fog ---
[Ichni.Editor.DynamicUISlider("Fog Height", Group = "DTMStarrySkybox - Fog", Span = 2, Min = 0, Max = 5)]
public float fogHeight = 1f;
[Ichni.Editor.DynamicUISlider("Fog Power", Group = "DTMStarrySkybox - Fog", Span = 2, Min = 0, Max = 1)]
public float fogPower = 0.5f;
[Ichni.Editor.DynamicUISlider("Fog Contrast", Group = "DTMStarrySkybox - Fog", Span = 2, Min = 0, Max = 200)]
public float fogContrast = 40f;
#endregion