public AudioJob(AudioAction action, MyAudioType type, bool fade, float delay) { this.action = action; this.type = type; this.fade = fade; this.delay = delay; }
private void RemoveConflictJobs(MyAudioType audioType) { if (jobTable.ContainsKey(audioType)) { RemoveJob(audioType); } MyAudioType conflictAudio = MyAudioType.None; foreach (DictionaryEntry entry in jobTable) { MyAudioType _audioType = (MyAudioType)entry.Key; AudioTrack audioTrackInUse = (AudioTrack)audioTable[_audioType]; AudioTrack audioTrackNeeded = (AudioTrack)audioTable[audioType]; if (audioTrackNeeded.source == audioTrackInUse.source) { conflictAudio = _audioType; } } if (conflictAudio != MyAudioType.None) { RemoveJob(conflictAudio); } }
private AudioClip GetAudioClipFromAudioTrack(MyAudioType type, AudioTrack track) { foreach (AudioObject obj in track.audios) { if (obj.type == type) { return(obj.clip); } } return(null); }
private void RemoveJob(MyAudioType audioType) { if (!jobTable.ContainsKey(audioType)) { LogWarning($"You are trying to stop a job {audioType} that is not running"); } IEnumerator runningJobCoroutine = (IEnumerator)jobTable[audioType]; StopCoroutine(runningJobCoroutine); jobTable.Remove(audioType); }
public void Stop(MyAudioType type, bool fade = false, float delay = 0.0f) { AddJob(new AudioJob(AudioAction.STOP, type, fade, delay)); }
public void Restart(MyAudioType type, bool fade = false, float delay = 0.0f) { AddJob(new AudioJob(AudioAction.RESTART, type, fade, delay)); }