コード例 #1
0
 void StopMusicInternal()
 {
     _currentMusicName = "";
     if (_music != null)
     {
         StartFadingOutMusic();
         _music = null;
     }
 }
コード例 #2
0
    private void PlayMusicInternal(string musicName)
    {
        if (string.IsNullOrEmpty(musicName))
        {
            Debug.Log("Music empty or null");
            return;
        }

        if (_currentMusicName == musicName)
        {
            //Debug.Log("Music already playing: " + musicName);
            return;
        }

        if (!string.IsNullOrEmpty(_currentMusicName))
        {
            AssetBundleManager.UnloadAssetBundle("music/" + _currentMusicName + ".u3d", true);
        }

        StopMusicInternal();

        _currentMusicName = musicName;

        AudioClip musicClip = LoadClipFromBundle("music/" + musicName + ".u3d", musicName);// LoadClip("Music/" + musicName);

        GameObject  music       = new GameObject("Music: " + musicName);
        AudioSource musicSource = music.AddMissingComponent <AudioSource>();

        music.transform.SetParent(transform);

        musicSource.outputAudioMixerGroup = _settings.MusicAudioMixerGroup;

        musicSource.loop                = true;
        musicSource.priority            = 0;
        musicSource.playOnAwake         = false;
        musicSource.mute                = _settings.GetMusicMuted();
        musicSource.ignoreListenerPause = true;
        musicSource.clip                = musicClip;
        musicSource.Play();

        musicSource.volume = 0;

        _music              = new SMMusic();
        _music.Source       = musicSource;
        _music.FadingIn     = true;
        _music.TargetVolume = _settings.GetMusicVolumeCorrected();
        _music.Timer        = 0;
        _music.FadingTime   = _settings.MusicFadeTime;
    }