Files
ichni_Official/Assets/ThemeBundles/DepartureToMultiverse/Scripts/Game/Note/NoteEffect/DTMRippleEffect.cs
SoulliesOfficial 56cee0cf01 修复
2026-03-18 13:42:23 -04:00

51 lines
1.9 KiB
C#

using Lean.Pool;
using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMRippleEffect : EffectBase
{
#region [] Effect Fields & States
private DTMRipple ripple;
public float rippleTime;
public Vector3 positionOffset;
public Vector3 eulerAnglesOffset;
public Vector3 scale;
public Color emissionColor;
public float emissionIntensity;
#endregion
#region [] Initialization
public DTMRippleEffect(float rippleTime, Color emissionColor, float emissionIntensity,
Vector3 positionOffset, Vector3 eulerAnglesOffset, Vector3 scale)
{
this.effectTime = 0;
this.rippleTime = rippleTime;
this.positionOffset = positionOffset;
this.eulerAnglesOffset = eulerAnglesOffset;
this.scale = scale;
this.emissionColor = emissionColor;
this.emissionIntensity = emissionIntensity;
}
#endregion
#region [] Core Effect Logic
public override void Adjust()
{
GameObject prefab = GameManager.Instance.customPrefabs["departure_to_multiverse"].GetPrefab("DTM_Ripple");
ripple = LeanPool.Spawn(prefab, attachedGameElement.transform).GetComponent<DTMRipple>();
ripple.transform.localPosition = positionOffset;
ripple.transform.localEulerAngles = eulerAnglesOffset;
ripple.transform.localScale = scale;
ripple.transform.SetParent(null);
ripple.SetRippleTime(rippleTime);
ripple.SetEmissionColor(emissionColor * Mathf.Pow(2, emissionIntensity));
ripple.mainRipple.Play();
LeanPool.Despawn(ripple.gameObject, rippleTime);
}
#endregion
}
}