SV = This is the position of the song it skips to. It is also used as the offset counter for all the calls in that section.
The first variable in each function call is the delay in which it starts and since each coroutine runs separately, it need to subtract SV so it triggers at the right time.
So Creating the first circle happens at time (31.03 - SV) ( SV = 31.03). So it happens at 0s after the Phase 3 coroutine is called.
Not sure if this is the best way to set things up, but it makes things simple if I have to move functions around because the time to do an action is always the exact time in the song.
print ("PHASE 3");
float SV = 31.03f;
MusicController.control.SkipToPoint (SV);
Spawner3.MoveObjectToPoint (31.03f-SV, null, new Vector2 (-2, 0), 0);
Spawner4.MoveObjectToPoint (31.03f-SV, null, new Vector2 (2, 0), 0);
Spawner3.CreateShape_Circle (31.03f-SV, null, new Vector3 (-2, 0), 0.38f, 9, 0.5f, 0.5f, 1, true);
Spawner3.ChangeScale (34.73f-SV, null, 4, 4, 3.1f);
Spawner4.CreateShape_Circle (37.74f-SV, null, new Vector3 (2, 0), 0.38f, 9, 0.5f, 0.5f, 1, true);
Spawner4.ChangeScale (41.35f-SV, null, 4, 4, 3.1f);
Spawner1.CreateLine_ToFrom (44.36f-SV, null, new Vector2 (-2, -2.5f), null, new Vector2 (2, -2.5f), 0.38f, 5, true);
Spawner1.CreateLine_ToFrom (44.36f-SV, null, new Vector2 (-2, 2.5f), null, new Vector2 (2, 2.5f), 0.38f, 5, true);
Spawner1.BreakRandomly_Children (46.32f-SV, 0, 2);
Spawner1.ChangeAlpha_Children (46.32f-SV, 0, 0, 4);
Spawner1.Destroy_Children (50.32f-SV, 0);
Spawner3.RotateDegrees (46.32f-SV, null, 360, 1.45f);
Spawner4.RotateDegrees (46.32f-SV, null, -360, 1.45f);
Spawner2.CreateLine_ToFrom (47.87f-SV, null, new Vector2 (-2.5f, -2.5f), null, new Vector2 (2.5f, -2.5f), 0.38f, 5, true);
Spawner2.CreateLine_ToFrom (47.87f-SV, null, new Vector2 (-2.5f, 2.5f), null, new Vector2 (2.5f, 2.5f), 0.38f, 5, true);
Spawner2.BreakRandomly_Children (49.56f-SV, 0, 2);
Spawner2.ChangeAlpha_Children (49.56f - SV, 0, 0, 4);
Spawner2.Destroy_Children (53.56f - SV, 0);
Spawner3.RotateDegrees (49.73f-SV, null, -360, 1.35f);
Spawner4.RotateDegrees (49.73f-SV, null, 360, 1.35f);
Spawner1.CreateLine_ToFrom (51.21f-SV, null, new Vector2 (-2.5f, -2.5f), null, new Vector2 (2.5f, -2.5f), 0.38f, 5, true);
Spawner1.CreateLine_ToFrom (51.21f-SV, null, new Vector2 (-2.5f, 2.5f), null, new Vector2 (2.5f, 2.5f), 0.38f, 5, true);
Spawner1.BreakToTarget_Children (52.89f - SV, null, new Vector2 (0, 0), 0, 4);
Spawner1.Destroy_Children (56.89f - SV, 0);
Spawner1.Shoot_CircleBurst (54.90f-SV, null, new Vector3(-1, 1), 15, 2, 3);
Spawner2.Shoot_CircleBurst (55.75f-SV, null, new Vector3( 1, 1), 15, 2, 3);
Spawner1.Shoot_CircleBurst (57.25f-SV, null, new Vector3( 0, 0), 15, 1.5f, 3);
Spawner2.Shoot_CircleBurst (57.25f-SV, null, new Vector3( 0, 0), 15, 2, 3);