public GameLevel(string path, IModManager modManager) { FilePath = path; Name = GamePathManager.GetFileNameWithoutExt(path); _TAG = "GameLevel:" + Name; ModManager = modManager; }
/// <summary> /// 加载模组包中的音乐资源 /// </summary> /// <param name="assets">资源路径(模组包:音乐路径)</param> /// <returns></returns> public AudioClip LoadAudioResource(string assets) { string[] names = assets.Split(':'); GameMod mod = ModManager.FindGameModByAssetStr(names[0]); if (mod == null) { GameLogger.Warning(TAG, "无法加载声音文件 {0} ,因为未找到模组包 {1}", assets, names[0]); GameErrorManager.LastError = GameError.NotRegister; return(null); } if (mod.LoadStatus != GameModStatus.InitializeSuccess) { GameLogger.Warning(TAG, "无法加载声音文件 {0} ,因为模组包 {1} ({2}) 未初始化", assets, names[0], mod.Uid); GameErrorManager.LastError = GameError.NotInitialize; return(null); } AudioClip clip = mod.GetAsset <AudioClip>(names[1]); if (clip != null) { clip.name = GamePathManager.GetFileNameWithoutExt(names[1]); } else { GameLogger.Warning(TAG, "未找到声音文件 {0} ,在模组包 {1}", assets, names[0]); GameErrorManager.LastError = GameError.AssetsNotFound; } return(clip); }
/// <summary> /// 注册 SoundPlayer /// </summary> /// <param name="audioClip">音频源文件</param> /// <returns></returns> public AudioSource RegisterSoundPlayer(GameSoundType type, AudioClip audioClip, bool playOnAwake = false, bool activeStart = true, string name = "") { AudioSource audioSource = Instantiate(audioSourcePrefab, gameObject.transform).GetComponent <AudioSource>(); audioSource.clip = audioClip; audioSource.playOnAwake = playOnAwake; audioSource.gameObject.name = "AudioSource_" + type + "_" + (name == "" ? GamePathManager.GetFileNameWithoutExt(audioClip.name) : name); if (!activeStart) { audioSource.gameObject.SetActive(false); } RegisterAudioSource(type, audioSource); return(audioSource); }