static int PlaySFX3D(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(UnityEngine.Vector3), typeof(string), typeof(float), typeof(float))) { UnityEngine.Vector3 arg0 = (UnityEngine.Vector3)ToLua.ToObject(L, 1); string arg1 = ToLua.ToString(L, 2); float arg2 = (float)LuaDLL.lua_tonumber(L, 3); float arg3 = (float)LuaDLL.lua_tonumber(L, 4); AudioPlayManager.PlaySFX3D(arg0, arg1, arg2, arg3); return(0); } else if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(UnityEngine.GameObject), typeof(string), typeof(float), typeof(float))) { UnityEngine.GameObject arg0 = (UnityEngine.GameObject)ToLua.ToObject(L, 1); string arg1 = ToLua.ToString(L, 2); float arg2 = (float)LuaDLL.lua_tonumber(L, 3); float arg3 = (float)LuaDLL.lua_tonumber(L, 4); AudioPlayManager.PlaySFX3D(arg0, arg1, arg2, arg3); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: AudioPlayManager.PlaySFX3D")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public void Stop() { if (audioSource) { audioSource.Stop(); } playState = AudioPlayState.Stop; if (sourceType == AudioSourceType.Music) { if (!isCallPreStop) { isCallPreStop = true; if (AudioPlayManager.OnMusicPreStopCallBack != null) { AudioPlayManager.OnMusicPreStopCallBack(AssetName, musicChannel, flag); } } if (AudioPlayManager.OnMusicStopCallBack != null) { AudioPlayManager.OnMusicStopCallBack(AssetName, musicChannel, flag); } } else { if (AudioPlayManager.OnSFXStopCallBack != null) { AudioPlayManager.OnSFXStopCallBack(AssetName, flag); } } }
/// <summary> /// 程序启动 /// </summary> public void AppLaunch() { DontDestroyOnLoad(gameObject); Application.runInBackground = true; Screen.sleepTimeout = SleepTimeout.NeverSleep; SetResourceLoadType(useCacheWhenLoadResource); //设置资源加载类型 AudioPlayManager.Init(); MemoryManager.Init(); //内存管理初始化 Timer.Init(); //计时器启动 InputManager.Init(); //输入管理器启动 #if !UNITY_WEBGL UIManager.Init(); //UIManager启动 #else UIManager.InitAsync(); //异步加载UIManager #endif ApplicationStatusManager.Init(); //游戏流程状态机初始化 GlobalLogicManager.Init(); //初始化全局逻辑 if (AppMode != AppMode.Release) { GUIConsole.Init(); //运行时Console DevelopReplayManager.OnLunchCallBack += () => { SDKManager.Init(); //初始化SDKManger #if USE_LUA LuaManager.Init(); #endif InitGlobalLogic(); //全局逻辑 ApplicationStatusManager.EnterTestModel(m_Status); //可以从此处进入测试流程 }; DevelopReplayManager.Init(m_quickLunch); //开发者复盘管理器 LanguageManager.Init(); } else { Log.Init(false); //关闭 Debug SDKManager.Init(); //初始化SDKManger #if USE_LUA LuaManager.Init(); #endif InitGlobalLogic(); //全局逻辑 ApplicationStatusManager.EnterStatus(m_Status); //游戏流程状态机,开始第一个状态 LanguageManager.Init(); } if (s_OnApplicationModuleInitEnd != null) { s_OnApplicationModuleInitEnd(); } }
public static void Play(string keyName, float fadeTime = 0.6f) { Init(); if (currentAudioGroupData != null && keyName == currentAudioGroupData.keyName && audioGroupPlayState == AudioGroupPlayState.Playing) { return; } //Debug.Log("AudioGroupSystem.Play :" + keyName); audioGroupPlayState = AudioGroupPlayState.Playing; // Dictionary<int, AudioAsset> playingMusics = AudioPlayManager.a2DPlayer.bgMusicDic; if (currentAudioGroupData != null) { foreach (var item in currentAudioGroupData.fixedMusicDatas) { AudioPlayManager.StopMusic2D(item.channel, fadeTime); } foreach (var ss in currentAudioGroupData.loopMusicDatas) { foreach (var item in ss.musicDatas) { AudioPlayManager.StopMusic2D(item.channel, fadeTime); } } } currentAudioGroupData = audioGroupDataDic[keyName]; for (int i = 0; i < currentAudioGroupData.fixedMusicDatas.Count; i++) { MusicPlayData data = currentAudioGroupData.fixedMusicDatas[i]; PlayMusicData(data); } foreach (var item in currentAudioGroupData.fixedSFXDatas) { PlaySFXData(item); } instance.randomLoopSFXDatas.Clear(); foreach (var item in currentAudioGroupData.sFXRandomLoopDatas) { instance.randomLoopSFXDatas.Add(new RandomLoopSFXData(item)); } foreach (var item in instance.randomLoopMusicDatas) { item.Close(); } instance.randomLoopMusicDatas.Clear(); foreach (var item in currentAudioGroupData.loopMusicDatas) { instance.randomLoopMusicDatas.Add(new RandomLoopMusicData(item)); } }
private void OnClick() { if (ResourcesConfigManager.GetIsExitRes(audioName)) { AudioPlayManager.PlaySFX2D(audioName, volume); } else { Debug.LogError("不存在音频文件:" + audioName); } }
static int ReleaseSFXAll3D(IntPtr L) { try { ToLua.CheckArgsCount(L, 0); AudioPlayManager.ReleaseSFXAll3D(); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
private static void Init() { GameObject obj = new GameObject("[AudioManager]"); AudioPlayManager audioManager = obj.AddComponent <AudioPlayManager>(); DontDestroyOnLoad(obj); a2DPlayer = new Audio2DPlayer(audioManager); a3DPlayer = new Audio3DPlayer(audioManager); TotleVolume = 1; MusicVolume = 1; SFXVolume = 1; }
static int SaveVolume(IntPtr L) { try { ToLua.CheckArgsCount(L, 0); AudioPlayManager.SaveVolume(); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
private void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 20), "Save")) { AudioPlayManager.StopMusic2D(1); } if (GUI.Button(new Rect(10, 40, 100, 20), "Show")) { RecordTable table = RecordManager.GetData("GameSettingData"); Debug.Log(table["TotleVolume"].GetFloat()); } }
public static void Init() { GameObject obj = new GameObject("[AudioManager]"); AudioPlayManager audioManager = obj.AddComponent <AudioPlayManager>(); DontDestroyOnLoad(obj); a2DPlayer = new Audio2DPlayer(audioManager); a3DPlayer = new Audio3DPlayer(audioManager); TotleVolume = RecordManager.GetFloatRecord("GameSettingData", "TotleVolume", 1f); MusicVolume = RecordManager.GetFloatRecord("GameSettingData", "MusicVolume", 1f); SFXVolume = RecordManager.GetFloatRecord("GameSettingData", "SFXVolume", 1f); }
static int PauseSFXAll3D(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); bool arg0 = LuaDLL.luaL_checkboolean(L, 1); AudioPlayManager.PauseSFXAll3D(arg0); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int ReleaseSFX3D(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); UnityEngine.GameObject arg0 = (UnityEngine.GameObject)ToLua.CheckUnityObject(L, 1, typeof(UnityEngine.GameObject)); AudioPlayManager.ReleaseSFX3D(arg0); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
private void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 20), "Test")) { AudioPlayManager.TotleVolume = 0.7f; AudioPlayManager.SaveVolume(); Debug.Log("保存成功"); } if (GUI.Button(new Rect(10, 40, 100, 20), "Result")) { Debug.Log("读取值:" + RecordManager.GetFloatRecord("GameSettingData", "TotleVolume", 1f)); } }
static int PauseMusicAll3D(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); bool arg0 = LuaDLL.luaL_checkboolean(L, 1); float arg1 = (float)LuaDLL.luaL_checknumber(L, 2); AudioPlayManager.PauseMusicAll3D(arg0, arg1); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int StopMusic2D(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); int arg0 = (int)LuaDLL.luaL_checknumber(L, 1); float arg1 = (float)LuaDLL.luaL_checknumber(L, 2); AudioPlayManager.StopMusic2D(arg0, arg1); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
///// <summary> ///// 2D 音乐转态转换 回调(参数 :资源名,channel,切换的转态,flag(标识:用于在多个相同音频名称时分辨)) ///// </summary> //public static CallBack<string, int, AudioPlayState, string> audio2DMusicStateCallBack; ///// <summary> ///// 2D 音乐转态转换 回调(参数 :资源名,切换的转态,flag(标识:用于在多个相同音频名称时分辨)) ///// </summary> //public static CallBack<string, AudioPlayState, string> audio2DSFXStateCallBack; #endregion public static void Init() { GameObject obj = new GameObject("[AudioManager]"); AudioPlayManager audioManager = obj.AddComponent <AudioPlayManager>(); DontDestroyOnLoad(obj); obj.AddComponent <AudioListener> (); a2DPlayer = new Audio2DPlayer(audioManager); a3DPlayer = new Audio3DPlayer(audioManager); MasterVolume = GameSetting.MasterVolume; MusicVolume = GameSetting.MusicVolume; SFXVolume = GameSetting.SFXVolume; }
static int StopMusic3D(IntPtr L) { try { ToLua.CheckArgsCount(L, 3); UnityEngine.GameObject arg0 = (UnityEngine.GameObject)ToLua.CheckUnityObject(L, 1, typeof(UnityEngine.GameObject)); int arg1 = (int)LuaDLL.luaL_checknumber(L, 2); float arg2 = (float)LuaDLL.luaL_checknumber(L, 3); AudioPlayManager.StopMusic3D(arg0, arg1, arg2); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/// <summary> /// 程序启动 /// </summary> public void AppLaunch() { DontDestroyOnLoad(gameObject); SetResourceLoadType(); //设置资源加载类型 //ResourcesConfigManager.Initialize(); //资源路径管理器启动 AudioPlayManager.Init(); MemoryManager.Init(); //内存管理初始化 Timer.Init(); //计时器启动 InputManager.Init(); //输入管理器启动 #if !UNITY_WEBGL UIManager.Init(); //UIManager启动 #else UIManager.InitAsync(); //异步加载UIManager #endif ApplicationStatusManager.Init(); //游戏流程状态机初始化 GlobalLogicManager.Init(); //初始化全局逻辑 if (AppMode != AppMode.Release) { GUIConsole.Init(); //运行时Console DevelopReplayManager.OnLunchCallBack += () => { #if USE_LUA LuaManager.Init(); #endif InitGlobalLogic(); //全局逻辑 ApplicationStatusManager.EnterTestModel(m_Status); //可以从此处进入测试流程 }; DevelopReplayManager.Init(m_quickLunch); //开发者复盘管理器 } else { Log.Init(false); //关闭 Debug #if USE_LUA LuaManager.Init(); #endif InitGlobalLogic(); //全局逻辑 ApplicationStatusManager.EnterStatus(m_Status); //游戏流程状态机,开始第一个状态 } }
public static void Pause(bool isPause, float fadeTime = 0.5f) { if (audioGroupPlayState == AudioGroupPlayState.Playing && isPause) { audioGroupPlayState = AudioGroupPlayState.Pause; } if (audioGroupPlayState == AudioGroupPlayState.Pause && !isPause) { audioGroupPlayState = AudioGroupPlayState.Playing; } for (int i = 0; i < currentAudioGroupData.fixedMusicDatas.Count; i++) { MusicPlayData data = currentAudioGroupData.fixedMusicDatas[i]; AudioPlayManager.PauseMusic2D(data.channel, isPause, fadeTime); } AudioPlayManager.PauseSFXAll2D(isPause); }
static int PlaySFX2D(IntPtr L) { try { ToLua.CheckArgsCount(L, 5); string arg0 = ToLua.CheckString(L, 1); float arg1 = (float)LuaDLL.luaL_checknumber(L, 2); float arg2 = (float)LuaDLL.luaL_checknumber(L, 3); float arg3 = (float)LuaDLL.luaL_checknumber(L, 4); string arg4 = ToLua.CheckString(L, 5); AudioPlayManager.PlaySFX2D(arg0, arg1, arg2, arg3, arg4); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int PlayMusic2D(IntPtr L) { try { ToLua.CheckArgsCount(L, 7); string arg0 = ToLua.CheckString(L, 1); int arg1 = (int)LuaDLL.luaL_checknumber(L, 2); float arg2 = (float)LuaDLL.luaL_checknumber(L, 3); bool arg3 = LuaDLL.luaL_checkboolean(L, 4); float arg4 = (float)LuaDLL.luaL_checknumber(L, 5); float arg5 = (float)LuaDLL.luaL_checknumber(L, 6); string arg6 = ToLua.CheckString(L, 7); AudioPlayManager.PlayMusic2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/// <summary> /// 检查音频是否播放完成 /// </summary> public void CheckState() { if (playState == AudioPlayState.Stop) { return; } //Debug.Log("audioSource.time:" + audioSource.time + " clip.lenth:" + audioSource.clip.length); if (audioSource.clip.length > 1 && audioSource.time >= (audioSource.clip.length - 1) && !isCallPreStop) { isCallPreStop = true; if (AudioPlayManager.OnMusicPreStopCallBack != null) { AudioPlayManager.OnMusicPreStopCallBack(AssetName, musicChannel, flag); } } if (audioSource == null || (!audioSource.isPlaying && playState != AudioPlayState.Pause)) { Stop(); } }
static int PlayMusic3D(IntPtr L) { try { ToLua.CheckArgsCount(L, 8); UnityEngine.GameObject arg0 = (UnityEngine.GameObject)ToLua.CheckUnityObject(L, 1, typeof(UnityEngine.GameObject)); string arg1 = ToLua.CheckString(L, 2); int arg2 = (int)LuaDLL.luaL_checknumber(L, 3); float arg3 = (float)LuaDLL.luaL_checknumber(L, 4); bool arg4 = LuaDLL.luaL_checkboolean(L, 5); float arg5 = (float)LuaDLL.luaL_checknumber(L, 6); float arg6 = (float)LuaDLL.luaL_checknumber(L, 7); string arg7 = ToLua.CheckString(L, 8); AudioPlayManager.PlayMusic3D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public static void Play(string keyName, float fadeTime = 0.6f) { Init(); if (currentAudioGroupData != null && keyName == currentAudioGroupData.keyName) { return; } audioGroupPlayState = AudioGroupPlayState.Playing; currentAudioGroupData = audioGroupDataDic[keyName]; Dictionary <int, AudioAsset> playingMusics = AudioPlayManager.a2DPlayer.bgMusicDic; foreach (var item in playingMusics) { if (item.Key > currentAudioGroupData.fixedMusicDatas.Count - 1) { AudioPlayManager.StopMusic2D(item.Key, fadeTime); } } for (int i = 0; i < currentAudioGroupData.fixedMusicDatas.Count; i++) { MusicPlayData data = currentAudioGroupData.fixedMusicDatas[i]; PlayMusicData(data); } foreach (var item in currentAudioGroupData.fixedSFXDatas) { PlaySFXData(item); } instance.randomLoopSFXDatas.Clear(); foreach (var item in currentAudioGroupData.sFXRandomLoopDatas) { instance.randomLoopSFXDatas.Add(AddLoopSFX(item)); } }
private static void PlaySFXData(SFXPlayData data) { AudioPlayManager.PlaySFX2D(data.name, data.volume, data.delay, data.pitch); }
private static void PlayMusicData(MusicPlayData data) { AudioPlayManager.PlayMusic2D(data.name, data.channel, data.volume, data.isLoop, data.fadeTime, data.delay); }
private void Awake() { AudioPlayManager.Init(); }
private static void PlayMusicData(MusicPlayData data, string flag = "") { AudioPlayManager.PlayMusic2D(data.name, data.channel, data.volume, data.isLoop, data.fadeTime, data.delay, flag: flag); }
// Start is called before the first frame update void Start() { AudioPlayManager.PlayMusic2D("boss2", 1, 1f); }
private void OnClick() { AudioPlayManager.PlaySFX2D(audioName, volume); }