自动更新型DUI扩展,将Time变量挪出TImeline UI,Effect效果容器修缮,移除Note的transform模块,Scene Camera优化

This commit is contained in:
SoulliesOfficial
2025-02-26 00:52:08 -05:00
parent 1b4637ae95
commit 1e69a44327
36 changed files with 607 additions and 425 deletions

View File

@@ -40,8 +40,8 @@ namespace Ichni.RhythmGame
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Bloom Shake");
var effectTimeField = inspector.GenerateParameterInputField(this, container, "Bloom Time", nameof(bloomTime));
var bloomPeakField = inspector.GenerateParameterInputField(this, container, "Bloom Peak", nameof(bloomPeak));
var effectTimeField = inspector.GenerateInputField(this, container, "Bloom Time", nameof(bloomTime));
var bloomPeakField = inspector.GenerateInputField(this, container, "Bloom Peak", nameof(bloomPeak));
}
}

View File

@@ -11,7 +11,7 @@ namespace Ichni.RhythmGame
public partial class TimeEffectsCollection : GameElement, IHaveEffectSubmodule
{
public EffectSubmodule effectSubmodule { get; set; }
public float time;
public float time; //触发效果的时间
public static TimeEffectsCollection GenerateElement(string name, Guid guid, List<string> tags,
bool isFirstGenerated, GameElement parentElement, float time)
@@ -26,6 +26,7 @@ namespace Ichni.RhythmGame
protected override void SetDefaultSubmodules()
{
effectSubmodule = new EffectSubmodule(this);
submoduleList.Add(effectSubmodule);
}
private void Update()
@@ -38,18 +39,30 @@ namespace Ichni.RhythmGame
{
public override void SaveBM()
{
matchedBM = new TimeEffectsCollection_BM(this);
matchedBM = new TimeEffectsCollection_BM(elementName, elementGuid, tags,
parentElement.matchedBM as GameElement_BM, this);
}
public override void SetUpInspector()
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
Inspector inspectorMain = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Time Effects Collection");
var timeInputField = inspector.GenerateParameterInputField(this, container, "Time", nameof(time));
var timeInputField = inspector.GenerateInputField(this, container, "Time", nameof(time));
var effectNameInputField = inspector.GenerateInputField(container, "Effect Name");
var addEffectButton = inspector.GenerateButton(this, container, "Add Effect", () =>
{
IHaveEffectSubmodule.EffectCollection.TryGetValue("BloomShake", out var effect);
effectSubmodule.effectCollection["Default"].Add(effect);
if (IHaveEffectSubmodule.EffectCollection.TryGetValue(effectNameInputField.GetValue<string>(), out var effect))
{
effectSubmodule.effectCollection["Default"].Add(effect);
inspectorMain.SetInspector(this);
}
else
{
LogWindow.Log("Effect Type not found.", Color.red);
}
});
foreach (var effect in effectSubmodule.effectCollection["Default"])
@@ -69,21 +82,24 @@ namespace Ichni.RhythmGame
{
}
public TimeEffectsCollection_BM(TimeEffectsCollection timeEffectsCollection)
public TimeEffectsCollection_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, TimeEffectsCollection timeEffectsCollection)
: base(elementName, elementGuid, tags, attachedElement)
{
time = timeEffectsCollection.time;
}
public override void ExecuteBM()
{
matchedElement = TimeEffectsCollection.GenerateElement("Time Effects Collection", elementGuid,
matchedElement = TimeEffectsCollection.GenerateElement(elementName, elementGuid,
tags, false, GetElement(attachedElementGuid), time);
}
public override GameElement DuplicateBM(GameElement attached)
{
return TimeEffectsCollection.GenerateElement("Time Effects Collection", elementGuid,
return TimeEffectsCollection.GenerateElement(elementName, elementGuid,
tags, false, attached, time);
}
}