public static void UpdateAudio(this AudioJobOnGameObject audioJobOnGameObject, AudioManager.AudioJob audioJob) {
     try {
         audioJob.audio.transform.position = audioJobOnGameObject.GetObjectToPlayAudioOn(audioJob).position;
     }
     catch (Exception) {
         audioJob.Stop();
     }
 }
Пример #2
0
            public void LoadSaveDelayed(AudioManager audioManager)
            {
                audioManager.audioJobs.Clear();
                audioManager.updateAudioJobs.Clear();

                audioManager.serializableCustomUpdateAudioJobs   = this.customAudioJobs;
                audioManager.serializableUpdateAudioOnGameObject = this.audioJobOnGameObjects;
                Dictionary <string, AudioJob.AudioJobSave> savedAudioJobs = this.audioJobSaves;

                foreach (var kv in savedAudioJobs)
                {
                    audioManager.audioJobs[kv.Key] = kv.Value.LoadAudioJob();
                }

                foreach (var kv in audioManager.serializableCustomUpdateAudioJobs)
                {
                    string id = kv.Key;
                    SerializableReference customAudioJobReference = kv.Value;

                    customAudioJobReference.Reference.MatchAction(
                        saveableObject => {
                        CustomAudioJob customAudioJob = saveableObject as CustomAudioJob;
                        if (customAudioJob != null)
                        {
                            audioManager.updateAudioJobs[id] = customAudioJob.UpdateAudio;
                        }
                        else
                        {
                            audioManager.debug.LogError($"Failed to cast audioJob {id} as CustomAudioJob");
                        }
                    },
                        serializableSaveObject => audioManager.audioJobs[id].Stop()
                        );
                }

                foreach (var kv in audioManager.serializableUpdateAudioOnGameObject)
                {
                    string id = kv.Key;
                    SerializableReference updateAudioOnGameObjectReference = kv.Value;

                    updateAudioOnGameObjectReference.Reference.MatchAction(
                        saveableObject => {
                        AudioJobOnGameObject audioJobOnGameObject = saveableObject as AudioJobOnGameObject;
                        if (audioJobOnGameObject != null)
                        {
                            audioManager.updateAudioJobs[id] = audioJobOnGameObject.UpdateAudio;
                        }
                        else
                        {
                            audioManager.debug.LogError($"Failed to cast audioJob {id} as AudioJobOnGameObject");
                        }
                    },
                        serializableSaveObject => audioManager.audioJobs[id].Stop()
                        );
                }
            }