コード例 #1
0
        /// <summary>
        /// 资源是否加载完成
        /// </summary>
        /// <returns></returns>
        private static bool IsLoadFinishAssets()
        {
            bool audioClip = LoadAssetsTools.LoadingAudioClip(AssetsControl.songRequest);
            bool textAsset = LoadAssetsTools.LoadingTextAsset(AssetsControl.textAssetRequest) && AssetsControl.textAssetRequest != null;
            bool movie     = LoadAssetsTools.LoadingMovie(ModelManager.Instance.GetScenesDatas.VideoPlayer);

            return(audioClip && textAsset && movie);
        }
コード例 #2
0
 /// <summary>
 /// 加载完成
 /// </summary>
 /// <param name="audioClip">音频</param>
 /// <param name="textContent">歌词</param>
 internal static void LoadFinish(out AudioClip audioClip, out string textContent)
 {
     audioClip   = LoadAssetsTools.LoadFinishAudioClip(AssetsControl.songRequest);
     textContent = LoadAssetsTools.LoadFinishTextAsset(AssetsControl.textAssetRequest);
     LoadAssetsTools.LoadFinishMovie(ModelManager.Instance.GetScenesDatas.VideoPlayer);
     AssetsControl.songRequest?.Dispose();
     AssetsControl.songRequest = null;
     AssetsControl.textAssetRequest?.Dispose();
     AssetsControl.textAssetRequest = null;
 }
コード例 #3
0
        /// <summary>
        /// 开始加载资源
        /// </summary>
        /// <param name="fileExtensionName">带后缀的文件名</param>
        internal static void StartLoadAssets(string fileExtensionName)
        {
            //后缀名
            string extension = Path.GetExtension(fileExtensionName);
            //文件名(不带后缀)
            string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileExtensionName);
            string songPath  = string.Concat(Application.streamingAssetsPath, AssetsControl.AUDIO, fileExtensionName);
            string lyricPath = string.Concat(Application.streamingAssetsPath, AssetsControl.LYRIC, fileNameWithoutExtension, AssetsControl.LYRICEXTENSION);
            string moviePath = string.Concat(Application.streamingAssetsPath, AssetsControl.MOVIE, fileNameWithoutExtension, AssetsControl.MOVIEEXTENSION);

            if (File.Exists(songPath))
            {
                AudioType audioType = AssetsControl.JudgeAudioType(extension);
                if (audioType == AudioType.MPEG)
                {
                    //转化为wav
                    string outSongPath = string.Concat(Application.streamingAssetsPath, AssetsControl.AUDIO, fileNameWithoutExtension, AssetsControl.AUDIOMP3TOWAVEXTENSION);
                    using (var reader = new Mp3FileReader(songPath))
                    {
                        WaveFileWriter.CreateWaveFile(outSongPath, reader);
                    }
                    audioType = AudioType.WAV;
                    //此处更新文件名fileExtensionName
                    string[] songName = ModelManager.Instance.GetLogicDatas.SongsName;
                    for (int i = 0; i < songName.Length; i++)
                    {
                        if (songName[i].Equals(fileExtensionName))
                        {
                            songName[i] = string.Concat(fileNameWithoutExtension, AssetsControl.AUDIOMP3TOWAVEXTENSION);
                            break;
                        }
                    }
                    File.Delete(songPath);
                    //重定向路径
                    songPath = outSongPath;
                }
                AssetsControl.songRequest = LoadAssetsTools.StartLoadAudioClip(songPath, audioType);
            }
            else
            {
                Debug.LogError("歌曲文件不存在");
            }

            if (File.Exists(lyricPath))
            {
                AssetsControl.textAssetRequest = LoadAssetsTools.StartLoadTextAsset(lyricPath);
            }

            if (File.Exists(moviePath))
            {
                ModelManager.Instance.GetScenesDatas.VideoPlayer.enabled = true;
                LoadAssetsTools.StartLoadMovie(moviePath, ModelManager.Instance.GetScenesDatas.VideoPlayer);
            }
        }