private IEnumerator ActivateRoutine() { beam.startWidth = beam.endWidth = aimBeamWidth; beam.enabled = true; var fireTime = Conductor.GetNextNote(preFireNoteTime, preFireNoteOffset); StartCoroutine(Aim(fireTime)); StartCoroutine(Spin(fireTime)); yield return(new WaitForNote(preFireNoteTime, preFireNoteOffset - 1)); var waitTime = Conductor.GetNextNote(preFireNoteTime) - Conductor.noteDurations[Note.Thirtysecond]; yield return(new WaitForDspTime(waitTime)); PlayerSfx.PlayShootSfx(); yield return(Fire()); Destroy(gameObject); // if (hits > 0) // { // var hitDetector = hitBuffer[0].collider.gameObject.GetComponent<HitDetector>(); // if (hitDetector != null) hitDetector.Hit(Hit.Shot, direction); // } GameObject.Destroy(gameObject); }