/// <summary> /// 起動時の初期化 /// </summary> /// <param name="settingData">設定データ</param> public void BootInit(AdvBootSetting settingData) { foreach (AdvSoundSettingData data in List) { data.BootInit(settingData); AssetFile file = AssetFileManager.GetFileCreateIfMissing(data.FilePath); file.Version = data.Version; //ロードタイプをストリーミングにする場合、 //oggはUnityのバグがあるのでストリーム読み込みを無効にする //バグの内容は、曲の長さがとれず一度鳴らすと終了しなくなるというもの。 if (data.IsStreaming && !ExtensionUtil.CheckExtention(data.FilePath, ExtensionUtil.Ogg)) { file.AddLoadFlag(AssetFileLoadFlags.Streaming); } } }
//指定のファイル名をロードして鳴らす IEnumerator CoLoadAndPlayFile(string path, float masterVolume, float volume, bool isLoop, bool isStreaming) { if (!string.IsNullOrEmpty(path)) { AssetFile file = AssetFileManager.GetFileCreateIfMissing(path); if (isStreaming) { file.AddLoadFlag(AssetFileLoadFlags.Streaming); } AssetFileManager.Load(file, this); while (!file.IsLoadEnd) { yield return(0); } file.AddReferenceComponet(this.gameObject); file.Unuse(this); Play(file.Sound, 0.1f, masterVolume, volume, isLoop, isStreaming); } }
//指定のファイル名をロードして鳴らす IEnumerator CoLoadAndPlayFile(string path, float volume, bool isLoop, bool isStreaming, Func <float> callbackMasterVolume) { if (!string.IsNullOrEmpty(path)) { AssetFile file = AssetFileManager.GetFileCreateIfMissing(path); if (isStreaming) { file.AddLoadFlag(AssetFileLoadFlags.Streaming); } AssetFileManager.Load(file, this); while (!file.IsLoadEnd) { yield return(0); } SoundStream stream = Play(file.Sound, 0.1f, volume, isLoop, isStreaming, callbackMasterVolume); stream.FadeIn(0.1f); file.AddReferenceComponet(stream.gameObject); file.Unuse(this); } isLoading = false; }
/// <summary> /// StringGridの一行からデータ初期化 /// </summary> /// <param name="row">初期化するためのデータ</param> /// <returns>成否</returns> public override bool InitFromStringGridRow(StringGridRow row, AdvBootSetting bootSetting) { if (row.IsEmptyOrCommantOut) { return(false); } this.RowData = row; string key = AdvParser.ParseCell <string>(row, AdvColumnName.Label); if (string.IsNullOrEmpty(key)) { return(false); } else { InitKey(key); this.type = AdvParser.ParseCell <SoundType>(row, AdvColumnName.Type); this.fileName = AdvParser.ParseCell <string>(row, AdvColumnName.FileName); this.isStreaming = AdvParser.ParseCellOptional <bool>(row, AdvColumnName.Streaming, false); this.version = AdvParser.ParseCellOptional <int>(row, AdvColumnName.Version, 0); this.title = AdvParser.ParseCellOptional <string>(row, AdvColumnName.Title, ""); this.filePath = FileNameToPath(fileName, bootSetting); AssetFile file = AssetFileManager.GetFileCreateIfMissing(this.FilePath, this.RowData); if (file != null) { file.Version = this.Version; //ロードタイプをストリーミングにする場合、 if (this.IsStreaming) { file.AddLoadFlag(AssetFileLoadFlags.Streaming); } } return(true); } }