コード例 #1
0
 public AudioJob(AudioAction action, MyAudioType type, bool fade, float delay)
 {
     this.action = action;
     this.type   = type;
     this.fade   = fade;
     this.delay  = delay;
 }
コード例 #2
0
            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);
                }
            }
コード例 #3
0
            private AudioClip GetAudioClipFromAudioTrack(MyAudioType type, AudioTrack track)
            {
                foreach (AudioObject obj in track.audios)
                {
                    if (obj.type == type)
                    {
                        return(obj.clip);
                    }
                }

                return(null);
            }
コード例 #4
0
            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);
            }
コード例 #5
0
 public void Stop(MyAudioType type, bool fade = false, float delay = 0.0f)
 {
     AddJob(new AudioJob(AudioAction.STOP, type, fade, delay));
 }
コード例 #6
0
 public void Restart(MyAudioType type, bool fade = false, float delay = 0.0f)
 {
     AddJob(new AudioJob(AudioAction.RESTART, type, fade, delay));
 }