Exemplo n.º 1
0
    public void SwitchTrack()
    {
        SceneAudio _audioPlayer = _sceneAudio.GetComponent <SceneAudio>();
        MusicFader _crossFade   = GetComponent <MusicFader>();

        int   _trackId_1    = _audioPlayer._trackId_1;
        int   _trackId_2    = _audioPlayer._trackId_2;
        float _source_vol_1 = _audioPlayer._source_volume_1;
        float _source_vol_2 = _audioPlayer._source_volume_2;

        int currentSource = _audioPlayer._audioSource;

        if (currentSource == 1)
        {
            _audioPlayer.SelectTrack(_trackId_2, 2, _source_vol_2);

            _crossFade.FadeAudio(80.5f, _source_vol_2, _source_vol_1, 3);

            _audioPlayer._audioSource = 2;
        }
        else if (currentSource == 2)
        {
            _audioPlayer.SelectTrack(_trackId_1, 1, _source_vol_1);
            _crossFade.FadeAudio(80.5f, _source_vol_1, _source_vol_2, 3);

            _audioPlayer._audioSource = 1;
        }
    }
        private IEnumerator loadSceneAudioPrefab(string scene)
        {
            if (!sceneDefinitions.TryGetValue(scene, out var sceneDefinition))
            {
                yield break;
            }
            PrefabContentKey audioContentKey = sceneDefinition.SceneAudioContentKey;

            if (audioContentKey == null || string.IsNullOrEmpty(audioContentKey.Key) || !Content.ContainsKey(audioContentKey))
            {
                yield break;
            }
            AssetRequest <GameObject> audioRequest = Content.LoadAsync(audioContentKey);

            yield return(audioRequest);

            if (audioRequest.Asset != null)
            {
                if (sceneAudio.AudioPrefab != null)
                {
                    Log.LogErrorFormatted(this, "SceneAudio {0} for scene {1} was not properly cleaned up before loading a new one.", sceneAudio.AudioPrefab.name, sceneAudio.SceneName);
                    unpinCurrentAudioPrefab();
                }
                Content.TryPinBundle(audioContentKey.Key);
                sceneAudio                       = default(SceneAudio);
                sceneAudio.SceneName             = scene;
                sceneAudio.AudioPrefabContentKey = audioContentKey.Key;
                sceneAudio.AudioPrefab           = Object.Instantiate(audioRequest.Asset);
                Object.DontDestroyOnLoad(sceneAudio.AudioPrefab);
            }
            else
            {
                Log.LogError(this, "Failed to load audio prefab for scene: " + scene);
            }
        }
Exemplo n.º 3
0
    IEnumerator switchToNextScene(SceneAudio audio)
    {
        yield return(StartCoroutine(switchToNextClip(audio.intro)));

        loopSource.clip = audio.loop;
        loopSource.loop = true;
        loopSource.PlayScheduled(AudioSettings.dspTime + audio.intro.length);
    }
Exemplo n.º 4
0
 private void switchAudio(SceneAudio audio)
 {
     if (sceneAudio != audio)
     {
         //StartCoroutine(switchToNextClip(audio.intro));
         StartCoroutine(switchToNextScene(audio));
         sceneAudio = audio;
     }
 }