Files
ichni_Official/Assets/Scripts/Game/GameElements/GeneralEffects/TimeEffectsCollection.cs
SoulliesOfficial 25b6da25ae 同步
2026-03-31 07:51:40 -04:00

66 lines
2.1 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
using Sirenix.OdinInspector;
using UniRx;
using UnityEngine;
namespace Ichni.RhythmGame
{
public partial class TimeEffectsCollection : GameElement, IHaveTransformSubmodule, IHaveEffectSubmodule
{
#region [] Essential Configs
public float time; //触发效果的时间
#endregion
#region [] Submodules
public TransformSubmodule transformSubmodule { get; set; }
public EffectSubmodule effectSubmodule { get; set; }
#endregion
#region [] Lifecycle & Factory
public static TimeEffectsCollection GenerateElement(string name, Guid guid, List<string> tags,
bool isFirstGenerated, GameElement parentElement, float time)
{
TimeEffectsCollection timeEffectsCollection = Instantiate(GameManager.Instance.basePrefabs.emptyObject).AddComponent<TimeEffectsCollection>();
timeEffectsCollection.Initialize(name, guid, tags, isFirstGenerated, parentElement);
timeEffectsCollection.time = time;
return timeEffectsCollection;
}
public override void SetDefaultSubmodules()
{
transformSubmodule = new TransformSubmodule(this);
effectSubmodule = new EffectSubmodule(this);
}
#endregion
#region [] Main Update
private void Update()
{
if (!GameManager.Instance.songPlayer.isUpdating)
{
return;
}
foreach (EffectBase effect in effectSubmodule.effectCollection["Prior"])
{
effect.UpdateEffect(time);
}
foreach (EffectBase effect in effectSubmodule.effectCollection["Default"])
{
effect.UpdateEffect(time);
}
foreach (EffectBase effect in effectSubmodule.effectCollection["Late"])
{
effect.UpdateEffect(time);
}
}
#endregion
}
}