新Head
This commit is contained in:
@@ -20,69 +20,63 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
#region [绘制编辑器面板] Inspector Setup
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
Inspector inspectorMain = EditorManager.instance.uiManager.inspector;
|
||||
|
||||
base.SetUpInspector();
|
||||
|
||||
var container = inspector.GenerateContainer("Custom 2D Shape");
|
||||
Inspector inspectorMain = EditorManager.instance.uiManager.inspector;
|
||||
|
||||
// 获取可选的主题包列表
|
||||
themeBundleList = ThemeBundleManager.instance.loadedThemeBundleList.ConvertAll(x => x.themeBundleName);
|
||||
|
||||
// 排版布置
|
||||
var selectionGroup = container.GenerateSubcontainer(3);
|
||||
|
||||
// 选择主题包列表
|
||||
inspector.GenerateDropdown(this, selectionGroup, "Sprite Theme", themeBundleList, nameof(spriteThemeBundleName))
|
||||
.AddListenerFunction(() => {
|
||||
// 当切换主题包时,强制重置下面的物体名称列表,并刷新面板以装填新列表
|
||||
spriteName = string.Empty;
|
||||
inspectorMain.SetInspector(this);
|
||||
});
|
||||
InspectorBuilder.For(this)
|
||||
.RawSection("Custom 2D Shape", 0, (insp, container) =>
|
||||
{
|
||||
var selectionGroup = container.GenerateSubcontainer(3);
|
||||
|
||||
// 如果选择了主题包,则填充其 图片资源 列表
|
||||
if (!string.IsNullOrEmpty(spriteThemeBundleName) && ThemeBundleManager.instance.TryGetThemeBundle(spriteThemeBundleName, out ThemeBundle themeBundle))
|
||||
{
|
||||
// 注意:由于资源加载规则,一些图片可能存在于 assetList_Other (Sprite 类型),另一些在 assetList_Texture (Texture2D 类型)
|
||||
spriteNameList = new List<string>();
|
||||
|
||||
// 收集两个列表中的所有资源名称进行合并
|
||||
var spriteNames = themeBundle.assetList_Other.FindAll(x => x is Sprite).ConvertAll(x => x.name);
|
||||
var textureNames = themeBundle.assetList_Texture.ConvertAll(x => x.name);
|
||||
|
||||
spriteNameList.AddRange(spriteNames);
|
||||
spriteNameList.AddRange(textureNames);
|
||||
|
||||
// 去重以防万一(有些包里同名资源可能存在多态)
|
||||
spriteNameList = new List<string>(new HashSet<string>(spriteNameList));
|
||||
|
||||
inspector.GenerateDropdown(this, selectionGroup, "Sprite Name", spriteNameList, nameof(spriteName))
|
||||
.AddListenerFunction(() => inspectorMain.SetInspector(this));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 未选择或选择无效时,禁用下一级列表
|
||||
var spriteDropdown = inspector.GenerateDropdown(this, selectionGroup, "Sprite Name", new List<string>(), nameof(spriteName));
|
||||
spriteDropdown.dropdown.interactable = false;
|
||||
}
|
||||
// 选择主题包列表
|
||||
insp.GenerateDropdown(this, selectionGroup, "Sprite Theme", themeBundleList, nameof(spriteThemeBundleName))
|
||||
.AddListenerFunction(() =>
|
||||
{
|
||||
spriteName = string.Empty;
|
||||
inspectorMain.SetInspector(this);
|
||||
});
|
||||
|
||||
// 确认并应用按钮
|
||||
var applyButton = inspector.GenerateButton(this, selectionGroup, "Apply Sprite", () =>
|
||||
{
|
||||
UpdateSprite();
|
||||
Refresh();
|
||||
});
|
||||
// 如果选择了主题包,则填充其图片资源列表
|
||||
if (!string.IsNullOrEmpty(spriteThemeBundleName) &&
|
||||
ThemeBundleManager.instance.TryGetThemeBundle(spriteThemeBundleName, out ThemeBundle themeBundle))
|
||||
{
|
||||
spriteNameList = new List<string>();
|
||||
|
||||
// 如果没有选好,则不给确认
|
||||
if (string.IsNullOrEmpty(spriteThemeBundleName) || string.IsNullOrEmpty(spriteName))
|
||||
{
|
||||
applyButton.button.interactable = false;
|
||||
}
|
||||
var spriteNames = themeBundle.assetList_Other.FindAll(x => x is Sprite).ConvertAll(x => x.name);
|
||||
var textureNames = themeBundle.assetList_Texture.ConvertAll(x => x.name);
|
||||
|
||||
// 最后把通用的 Transform 和 颜色面板附加上去
|
||||
var settings = container.GenerateSubcontainer(3);
|
||||
StandardInspectionElement.GenerateForTransform(this, container);
|
||||
spriteNameList.AddRange(spriteNames);
|
||||
spriteNameList.AddRange(textureNames);
|
||||
spriteNameList = new List<string>(new HashSet<string>(spriteNameList));
|
||||
|
||||
insp.GenerateDropdown(this, selectionGroup, "Sprite Name", spriteNameList, nameof(spriteName))
|
||||
.AddListenerFunction(() => inspectorMain.SetInspector(this));
|
||||
}
|
||||
else
|
||||
{
|
||||
var spriteDropdown = insp.GenerateDropdown(this, selectionGroup, "Sprite Name", new List<string>(), nameof(spriteName));
|
||||
spriteDropdown.dropdown.interactable = false;
|
||||
}
|
||||
|
||||
// 确认并应用按钮
|
||||
var applyButton = insp.GenerateButton(this, selectionGroup, "Apply Sprite", () =>
|
||||
{
|
||||
UpdateSprite();
|
||||
Refresh();
|
||||
});
|
||||
|
||||
if (string.IsNullOrEmpty(spriteThemeBundleName) || string.IsNullOrEmpty(spriteName))
|
||||
{
|
||||
applyButton.button.interactable = false;
|
||||
}
|
||||
})
|
||||
.Section("Custom 2D Shape Transformation")
|
||||
.Preset(InspectorBuilder.TransformPreset)
|
||||
.Build();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -54,14 +54,14 @@ namespace Ichni.RhythmGame
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
base.SetUpInspector();
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic Environment Object");
|
||||
var shadowSettings = container.GenerateSubcontainer(3);
|
||||
var i = inspector.GenerateInputField(this, shadowSettings, "Shadow Threshold (-1 to 1)", nameof(shadowThreshold));
|
||||
var j = inspector.GenerateInputField(this, shadowSettings, "Shadow Smoothness (0 to 1)", nameof(shadowSmoothness));
|
||||
var u = inspector.GenerateToggle(this, shadowSettings, "Use World Light", nameof(useWorldLight));
|
||||
var shadowSettings2 = container.GenerateSubcontainer(1);
|
||||
var w = inspector.GenerateVector3InputField(this, shadowSettings2, "Fake Light Direction", nameof(fakeLightDir));
|
||||
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Basic Environment Object")
|
||||
.InputField(nameof(shadowThreshold), "Shadow Threshold (-1 to 1)")
|
||||
.InputField(nameof(shadowSmoothness), "Shadow Smoothness (0 to 1)")
|
||||
.Toggle(nameof(useWorldLight), "Use World Light")
|
||||
.Vector3Field(nameof(fakeLightDir), "Fake Light Direction")
|
||||
.Build();
|
||||
}
|
||||
|
||||
public override void SaveBM()
|
||||
|
||||
@@ -49,15 +49,13 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
{
|
||||
base.SetUpInspector();
|
||||
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Directional Light");
|
||||
var objectSettings = container.GenerateSubcontainer(3);
|
||||
var intensityField =
|
||||
inspector.GenerateInputField(this, objectSettings, "Intensity", nameof(intensity))
|
||||
.AddListenerFunction(Refresh);
|
||||
var castShadowsToggle =
|
||||
inspector.GenerateToggle(this, objectSettings, "Cast Shadows", nameof(castShadows))
|
||||
.AddListenerFunction(Refresh);
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Directional Light")
|
||||
.InputField(nameof(intensity), "Intensity")
|
||||
.OnChanged(Refresh)
|
||||
.Toggle(nameof(castShadows), "Cast Shadows")
|
||||
.OnChanged(Refresh)
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,18 +52,12 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
{
|
||||
base.SetUpInspector();
|
||||
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Directional Light");
|
||||
var objectSettings = container.GenerateSubcontainer(3);
|
||||
var intensityField =
|
||||
inspector.GenerateInputField(this, objectSettings, "Intensity", nameof(intensity))
|
||||
.AddListenerFunction(Refresh);
|
||||
var rangeField =
|
||||
inspector.GenerateInputField(this, objectSettings, "Range", nameof(range))
|
||||
.AddListenerFunction(Refresh);
|
||||
var castShadowsToggle =
|
||||
inspector.GenerateToggle(this, objectSettings, "Cast Shadows", nameof(castShadows))
|
||||
.AddListenerFunction(Refresh);
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Point Light")
|
||||
.InputField(nameof(intensity), "Intensity").OnChanged(Refresh)
|
||||
.InputField(nameof(range), "Range").OnChanged(Refresh)
|
||||
.Toggle(nameof(castShadows), "Cast Shadows").OnChanged(Refresh)
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -54,10 +54,10 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic Note Bad Shrink");
|
||||
var subcontainer = container.GenerateSubcontainer(3);
|
||||
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Basic Note Bad Shrink")
|
||||
.InputField(nameof(effectTime), "Effect Time")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,11 +57,11 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic 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("Basic Note Generate Expand")
|
||||
.InputField(nameof(generateTime), "Generate Time")
|
||||
.InputField(nameof(effectTime), "Effect Time")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,10 +56,10 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic Note Good Burst");
|
||||
var subcontainer = container.GenerateSubcontainer(3);
|
||||
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Basic Note Good Burst")
|
||||
.InputField(nameof(effectTime), "Effect Time")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic Note Holding Expand");
|
||||
var subcontainer = container.GenerateSubcontainer(3);
|
||||
var holdingTimeText = inspector.GenerateHintText(this, subcontainer, () => $"Holding Time: {GetHoldingTime()}");
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Basic Note Holding Expand")
|
||||
.HintText(() => $"Holding Time: {GetHoldingTime()}")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -54,10 +54,10 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic Note Miss Pale");
|
||||
var subcontainer = container.GenerateSubcontainer(3);
|
||||
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Basic Note Miss Pale")
|
||||
.InputField(nameof(effectTime), "Effect Time")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,10 +56,10 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic Note Perfect Burst");
|
||||
var subcontainer = container.GenerateSubcontainer(3);
|
||||
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
|
||||
InspectorBuilder.For(this)
|
||||
.Section("Basic Note Perfect Burst")
|
||||
.InputField(nameof(effectTime), "Effect Time")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -22,52 +22,31 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
// base.SetUpInspector() 会自动生成 ColorSubmodule 的 UI(BaseColor + 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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -47,10 +47,10 @@ namespace Ichni.RhythmGame.ThemeBundles.MetropolisOnOrbit
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("MOO Note Holding Animation");
|
||||
var subcontainer = container.GenerateSubcontainer(3);
|
||||
var holdingTimeText = inspector.GenerateHintText(this, subcontainer, () => $"Holding Time: {GetHoldingTime()}");
|
||||
InspectorBuilder.For(this)
|
||||
.Section("MOO Note Holding Animation")
|
||||
.HintText(() => $"Holding Time: {GetHoldingTime()}")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,9 +55,10 @@ namespace Ichni.RhythmGame.ThemeBundles.MetropolisOnOrbit
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Basic Note Perfect Burst");
|
||||
//var subcontainer = container.GenerateSubcontainer(3);
|
||||
InspectorBuilder.For(this)
|
||||
.Section("MOO Note Perfect Animation")
|
||||
.HintText("No configurable parameters")
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user