Esempio n. 1
0
 //指定したディレクトリにあるAudioClipをロードし、キャッシュ
 protected void LoadAudioClip(string directoryPath, AudioCacheType cacheType, bool isReleaseBGMCache)
 {
     _cacheType = cacheType;
     if (_cacheType == AudioCacheType.All)
     {
         _audioClipDict = Resources.LoadAll <AudioClip>(directoryPath).ToDictionary(clip => clip.name, clip => clip);
     }
     if (_cacheType == AudioCacheType.Used && isReleaseBGMCache)
     {
         SceneManager.sceneUnloaded += (scene) => {
             _audioClipDict.Clear();
         };
     }
 }
Esempio n. 2
0
        protected IEnumerator LoadAudioClip(string preloadPath, AudioCacheType cacheType, bool isReleaseCache)
        {
            if (!string.IsNullOrWhiteSpace(preloadPath))
            {
                var handle = Addressables.LoadAssetsAsync <AudioClip>(preloadPath, audio => _audioClipDict[preloadPath + audio.name] = audio);
                yield return(handle);
            }

            _cacheType = cacheType;
            if (_cacheType == AudioCacheType.Used && isReleaseCache)
            {
                SceneManager.sceneUnloaded += (scene) => _audioClipDict.Clear();
            }
        }