public AudioSourceController(double initTime, AudioClip clip, AudioSource copySettings, AudioCueType type) { MusicManager_2.SyncSourceSettings(copySettings, ref source); source.clip = clip; this.initTime = initTime; cueType = type; }
public void StartForeshadowing(AudioCueType cueType) { if (StateManager.State == GameState.Playing) { AudioSource foreshadow = gameObject.AddComponent <AudioSource>(); SyncSourceSettings(audio, ref foreshadow); MusicWithInformation foreshadowTrack; if (cueType == AudioCueType.Foreshadow_Long) { foreshadowTrack = foreshadowTracksLong[0]; CycleList(ref foreshadowTracksLong); } else if (cueType == AudioCueType.Foreshadow_Short) { foreshadowTrack = foreshadowTracksShort[0]; CycleList(ref foreshadowTracksShort); } else { return; } foreshadow.clip = foreshadowTrack.clip; foreshadow.volume = foreshadowTrack.volume; double initTime = GetTimeOfNextBar(); foreshadow.PlayScheduled(initTime); foreshadow.SetScheduledStartTime(initTime); AudioSourceController controller = new AudioSourceController(initTime, foreshadow, foreshadowTracksLong[0].cueType); foreshadowSourceControllers.Add(controller); int id = foreshadowID++; //EventManager.Music_ForeshadowBegin(id, foreshadow.clip.length); double currentBeatDuration = 60.0 / (currentlyPlayingTrack.BPM); if (cueType == AudioCueType.Foreshadow_Long) { StartCoroutine(CallForeshadowBegin(initTime - AudioSettings.dspTime, id, currentBeatDuration * 8)); StartCoroutine(CallForeshadowEvent(initTime - AudioSettings.dspTime + currentBeatDuration * 8, id, foreshadow.clip.length)); } else if (cueType == AudioCueType.Foreshadow_Short) { StartCoroutine(CallForeshadowBegin(initTime - AudioSettings.dspTime, id, currentBeatDuration * 4)); StartCoroutine(CallForeshadowEvent(initTime - AudioSettings.dspTime + currentBeatDuration * 4, id, foreshadow.clip.length)); } else if (controller.cueType == AudioCueType.UNDEFINED) { Debug.LogWarning("Tried to activate a foreshadow countdown but the clip had the UNDEFINED cue type"); } } }
public AudioSourceController(double initTime, AudioSource source, AudioCueType type) { this.source = source; this.initTime = initTime; cueType = type; }