using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.VFX;

namespace UNSLOW.EffectPractice
{
    /// <summary>同じSeedと開始時刻で、メッシュ表面からの粒子の動きを比較する。</summary>
    public sealed class MeshSurfaceDemo : MonoBehaviour
    {
        [SerializeField] private VisualEffect[] effects = System.Array.Empty<VisualEffect>();
        [SerializeField, Min(1)] private float replayInterval = 5;
        private float elapsed;

        public float Elapsed => elapsed;

        private void Start() => Replay();

        private void Update()
        {
            elapsed += Time.deltaTime;
            if (elapsed >= replayInterval || Keyboard.current?.spaceKey.wasPressedThisFrame == true)
                Replay();
        }

        public void Replay()
        {
            elapsed = 0;
            foreach (var effect in effects)
            {
                if (effect == null) continue;
                effect.startSeed = 14;
                effect.resetSeedOnPlay = false;
                effect.Reinit();
            }
        }
    }
}
