Exemple #1
0
 public GameLevel(string path, IModManager modManager)
 {
     FilePath   = path;
     Name       = GamePathManager.GetFileNameWithoutExt(path);
     _TAG       = "GameLevel:" + Name;
     ModManager = modManager;
 }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }