public void UpdateSliceAnimations()
    {
        if (animationPairs.Count < 1)
        {
            return;
        }

        if (SlashParticle.GetList().Count > 0)
        {
            return;
        }

        Pair2D animationPair = animationPairs.First();

        Slicer2D.LinearSliceAll(animationPair);

        Vector3 position = animationPair.A.ToVector2();

        position.z = -1;

        GameObject particleGameObject = Instantiate(particlePrefab, position, Quaternion.Euler(0, 0, (float)Vector2D.Atan2(animationPair.A, animationPair.B) * Mathf.Rad2Deg));

        SlashParticle particle = particleGameObject.GetComponent <SlashParticle>();

        particle.moveTo = animationPair.B;

        animationPairs.Remove(animationPair);
    }
    void GlobalSliceEvent(Slice2D slice)
    {
        Vector3 position = slice.slice[0].ToVector2();

        position.z = -5;

        GameObject particleGameObject = Instantiate(particlePrefab, position, Quaternion.Euler(0, 0, (float)Vector2D.Atan2(slice.slice[0], slice.slice[1]) * Mathf.Rad2Deg));

        SlashParticle particle = particleGameObject.GetComponent <SlashParticle>();

        particle.moveTo = slice.slice[1];
    }