public void PlaySound(MatchSoundEvent evt, bool loop = false) { MatchSound ms = GameSystem.Instance.matchSoundConfig.GetSounds(evt); if (ms == null) { Debug.Log("No sounds for event:" + evt); return; } if (ms.sounds.Count > 0) { MatchSound.Item sound = ms.sounds[UnityEngine.Random.Range(0, ms.sounds.Count)]; //Debug.Log("Play sound, Event:" + evt + " Sound:" + sound.soundId); GameUtils.Timer4View timer = new GameUtils.Timer4View((float)sound.fLag, () => { AudioClip clip = AudioManager.Instance.GetClip("Misc/" + sound.soundId); if (clip != null) { AudioManager.Instance.PlaySound(clip, true, 1f, 1f, loop); } else { Debug.LogWarning("Sound file " + sound + " not found"); } }, 1); m_soundsToPlay.Add(timer); timer.stop = false; } if (ms.narrator_sounds.Count > 0) { MatchSound.Item sound = ms.narrator_sounds[UnityEngine.Random.Range(0, ms.narrator_sounds.Count)]; //Debug.Log("Play narrator sound, Event:" + evt + " Sound:" + sound.soundId); GameUtils.Timer4View timer = new GameUtils.Timer4View((float)sound.fLag, () => { AudioClip clip = AudioManager.Instance.GetClip("Misc/" + sound.soundId); if (clip != null) { AudioManager.Instance.PlaySound(clip, true, 1f, 1f, loop); } else { Debug.LogWarning("Sound file " + sound + " not found"); } }, 1); m_soundsToPlay.Add(timer); timer.stop = false; } }
static int PlaySound(IntPtr L) { int count = LuaDLL.lua_gettop(L); if (count == 1) { string arg0 = LuaScriptMgr.GetLuaString(L, 1); PlaySoundManager.PlaySound(arg0); return(0); } else if (count == 2) { string arg0 = LuaScriptMgr.GetLuaString(L, 1); float arg1 = (float)LuaScriptMgr.GetNumber(L, 2); PlaySoundManager.PlaySound(arg0, arg1); return(0); } else if (count == 3 && LuaScriptMgr.CheckTypes(L, 1, typeof(PlaySoundManager), typeof(MatchSoundEvent), typeof(bool))) { PlaySoundManager obj = (PlaySoundManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "PlaySoundManager"); MatchSoundEvent arg0 = (MatchSoundEvent)LuaScriptMgr.GetLuaObject(L, 2); bool arg1 = LuaDLL.lua_toboolean(L, 3); obj.PlaySound(arg0, arg1); return(0); } else if (count == 3 && LuaScriptMgr.CheckTypes(L, 1, typeof(AudioClip), typeof(float), typeof(float))) { AudioClip arg0 = (AudioClip)LuaScriptMgr.GetLuaObject(L, 1); float arg1 = (float)LuaDLL.lua_tonumber(L, 2); float arg2 = (float)LuaDLL.lua_tonumber(L, 3); AudioSource o = PlaySoundManager.PlaySound(arg0, arg1, arg2); LuaScriptMgr.Push(L, o); return(1); } else { LuaDLL.luaL_error(L, "invalid arguments to method: PlaySoundManager.PlaySound"); } return(0); }
public void ReadConfig() { try { if (isLoadFinish == false) { return; } Debug.Log("Config reading " + name1); isLoadFinish = false; lock (LockObject) { GameSystem.Instance.readConfigCnt += 1; } string text = ResourceLoadManager.Instance.GetConfigText(name1); if (text == null) { ErrorDisplay.Instance.HandleLog("LoadConfig failed: " + name1, "", LogType.Error); return; } XmlDocument doc = CommonFunction.LoadXmlConfig(GlobalConst.DIR_XML_MATCH_SOUND, text); XmlNode root = doc.SelectSingleNode("Data"); foreach (XmlNode line in root.SelectNodes("Line")) { if (CommonFunction.IsCommented(line)) { continue; } MatchSoundEvent evt = (MatchSoundEvent)(int.Parse(line.SelectSingleNode("event").InnerText)); MatchSound ms = GetSounds(evt); if (ms == null) { ms = new MatchSound(); ms.soundEvent = evt; } string sounds = line.SelectSingleNode("sounds").InnerText; if (sounds.Length != 0) { string[] sound = sounds.Split('&'); foreach (string str in sound) { string[] tag = str.Split(':'); MatchSound.Item item = new MatchSound.Item(); item.soundId = tag[0]; item.fLag = IM.Number.Parse(tag[1]); ms.sounds.Add(item); } } sounds = line.SelectSingleNode("narrator_sounds").InnerText; if (sounds.Length != 0) { string[] sound = sounds.Split('&'); foreach (string str in sound) { string[] tag = str.Split(':'); MatchSound.Item item = new MatchSound.Item(); item.soundId = tag[0]; item.fLag = IM.Number.Parse(tag[1]); ms.narrator_sounds.Add(item); } } m_matchSounds.Add(ms); } } catch (XmlException exp) { Debug.Log("MatchSound config failed: " + exp.Message); } }
public MatchSound GetSounds(MatchSoundEvent evt) { return(m_matchSounds.Find((MatchSound ms) => { return ms.soundEvent == evt; })); }