public SoundClip(string clipPath, string clipName) { this.ClipPath = clipPath; this.ClipName = clipName; string pathLower = this.ClipPath.ToLower(); if (pathLower.Contains("bgm") == true) { this.PlayType = SoundPlayType.BGM; } else if (pathLower.Contains("effect") == true) { this.PlayType = SoundPlayType.EFFECT; } else if (pathLower.Contains("ui") == true) { this.PlayType = SoundPlayType.UI; } else { Debug.LogWarning("Cannot Find Type " + ClipPath); this.PlayType = SoundPlayType.None; } }
public SoundClip(string _clipPath, string _clipName) { clipPath = _clipPath; clipName = _clipName; string pathLower = clipPath.ToLower(); if (pathLower.Contains("bgm") == true) { playType = SoundPlayType.BGM; } else if (pathLower.Contains("effect") == true) { playType = SoundPlayType.EFFECT; } else if (pathLower.Contains("ui") == true) { playType = SoundPlayType.UI; } else { Debug.LogWarning("Can not Find Type : " + clipPath); playType = SoundPlayType.NONE; } }
public void Clear() { url = null; audio = null; playType = 0; volume = 1; }
public void Init(AudioSource audio_, string url_, SoundPlayType playType_, float volume_) { audio = audio_; url = url_; playType = playType_; volume = volume_; }
//-------∽-★-∽------∽-★-∽--------∽-★-∽LoadItem∽-★-∽--------∽-★-∽------∽-★-∽--------// LoadItem AddLoadItem(AudioSource audio_, string url_, SoundPlayType playType_, float volume_) { LoadItem item = m_itemPool.Pop(); item.Init(audio_, url_, playType_, volume_); m_itemList.Add(item); return(item); }
/// <summary> /// 加载并播放声音(异步加载) /// </summary> /// <param name="audio_"></param> /// <param name="url_"></param> /// <param name="playType_"></param> /// <param name="volume_"></param> public void LoadSound(AudioSource audio_, string url_, SoundPlayType playType_, float volume_) { url_ = url_.ToLower(); if (m_assetCache.HasAsset(url_)) { //如果已经在加载队列 TODO PlaySound(audio_, url_, playType_, volume_); return; } AddLoadItem(audio_, url_, playType_, volume_); m_assetCache.LoadAsync(url_, OnLoaded, this); //自己是引用者 }
//-------∽-★-∽------∽-★-∽--------∽-★-∽加载操作∽-★-∽--------∽-★-∽------∽-★-∽--------// /// <summary> /// 播放声音(同步加载) /// </summary> /// <param name="audio_"></param> /// <param name="url_"></param> /// <param name="playType_"></param> /// <param name="volume_"></param> public void PlaySound(AudioSource audio_, string url_, SoundPlayType playType_, float volume_) { url_ = url_.ToLower(); AudioClip clip = AssetCache.me.LoadSync(url_, this) as AudioClip; if (clip == null) { return; } switch (playType_) { case SoundPlayType.Once: //只播放一次,且会打断当前的播放 audio_.clip = clip; audio_.loop = false; audio_.volume = volume_; audio_.Play(); break; case SoundPlayType.Loop: audio_.clip = clip; audio_.loop = true; audio_.volume = volume_; audio_.Play(); break; case SoundPlayType.BGM: audio_.clip = clip; audio_.loop = true; //audio_.volume = volume_; //音量由调用者控制 audio_.Play(); break; default: //OneShot,只播放一次,且不会打断当前的播放 audio_.PlayOneShot(clip, volume_); break; } }
public SoundClip(string _clipPath, string _clipName) { this.clipPath = _clipPath; this.clipName = _clipName; string clipPathLower = this.clipPath.ToLower(); if (clipPathLower.Contains("bgm") == true) { this.playType = SoundPlayType.BGM; } else if (clipPathLower.Contains("effect") == true) { this.playType = SoundPlayType.EFFECT; } else if (clipPathLower.Contains("ui") == true) { this.playType = SoundPlayType.UI; } else { this.playType = SoundPlayType.None; } }
void OnLoaded(object data_) { AssetData data = data_ as AssetData; if (m_itemList.Count > 0) { LoadItem item; for (int i = m_itemList.Count - 1; i >= 0; --i) { item = m_itemList[i]; if (item.url == data.url) { AudioSource audio = item.audio; string url = item.url; SoundPlayType playType = item.playType; float volume = item.volume; RemoveLoadItem(item); PlaySound(audio, url, playType, volume); } } } }
// 새로 재생할 사운드를 fade in. public void fadePlay(SoundPlayType soundType, string id, AudioFader.State fadeType, float fadeTime) { #if UNITY_EDITOR if (BattleSimulator.nowSimulation) { return; } #endif AudioClip ac; AudioFader fader; int p1 = PLAYER_BGM_1; int p2 = PLAYER_BGM_2; if (soundType == SoundPlayType.Charging) { if (GameManager.me.isMuteSFX) { return; } p1 = PLAYER_CHARGING_1; p2 = PLAYER_CHARGING_2; fader = chargingFader; } else if (soundType == SoundPlayType.LoopEffect) { if (GameManager.me.isMuteSFX) { return; } p1 = PLAYER_LOOP_EFFECT_1; p2 = PLAYER_LOOP_EFFECT_2; fader = loopingEffectFader; } else { if (GameManager.me.isMuteBgm) { return; } fader = bgmFader; } switch (fadeType) { case AudioFader.State.FadeIn: if (GameManager.info.soundData.ContainsKey(id) == false) { return; } _sd = GameManager.info.soundData[id]; if (soundType == SoundPlayType.Music) { ac = loadOrGetAudioClip(_sd); stopBG(); } else { if (soundType == SoundPlayType.LoopEffect) { stopLoopEffect(); } else { stopLoopChargingEffect(); } ac = loadOrGetSFXAudioClip(_sd); } if (ac == null) { return; } setClip(p1, ac, true); fader.start(_audioSources[p1], _audioSources[p2], fadeType, fadeTime); break; case AudioFader.State.FadeOut: if (_audioSources[p1].isPlaying && _audioSources[p1].volume > 0) { fader.start(_audioSources[p1], null, fadeType, fadeTime); } else if (_audioSources[p2].isPlaying && _audioSources[p2].volume > 0) { fader.start(_audioSources[p2], null, fadeType, fadeTime); } break; case AudioFader.State.QueueFade: case AudioFader.State.CrossFade: if (GameManager.info.soundData.ContainsKey(id) == false) { return; } _sd = GameManager.info.soundData[id]; if (soundType == SoundPlayType.Music) { ac = loadOrGetAudioClip(_sd); } else { ac = loadOrGetSFXAudioClip(_sd); } if (ac == null) { fadePlay(soundType, id, AudioFader.State.FadeOut, fadeTime); return; } if (_audioSources[p1].isPlaying && _audioSources[p1].volume > 0) { setClip(p2, ac, true); fader.start(_audioSources[p1], _audioSources[p2], fadeType, fadeTime); } else if (_audioSources[p2].isPlaying && _audioSources[p2].volume > 0) { setClip(p1, ac, true); fader.start(_audioSources[p2], _audioSources[p1], fadeType, fadeTime); } else { setClip(p1, ac, true); fader.start(_audioSources[p1], null, AudioFader.State.FadeIn, fadeTime); } break; } }
public SoundPlayMessage(SoundPlayType type) { Type = type; }