Beispiel #1
0
    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);
            }
        }
    }
Beispiel #3
0
    /// <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();
        }
    }
Beispiel #4
0
    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);
     }
 }
Beispiel #6
0
 static int ReleaseSFXAll3D(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 0);
         AudioPlayManager.ReleaseSFXAll3D();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Beispiel #7
0
    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;
    }
Beispiel #8
0
 static int SaveVolume(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 0);
         AudioPlayManager.SaveVolume();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Beispiel #9
0
    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);
    }
Beispiel #11
0
 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));
     }
 }
Beispiel #12
0
 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));
     }
 }
Beispiel #13
0
    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));
        }
    }
Beispiel #14
0
 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));
     }
 }
Beispiel #15
0
 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));
     }
 }
Beispiel #16
0
    ///// <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;
    }
Beispiel #17
0
 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);
    }
Beispiel #20
0
 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));
     }
 }
Beispiel #21
0
 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();
     }
 }
Beispiel #23
0
 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);
 }
Beispiel #27
0
 private void Awake()
 {
     AudioPlayManager.Init();
 }
Beispiel #28
0
 private static void PlayMusicData(MusicPlayData data, string flag = "")
 {
     AudioPlayManager.PlayMusic2D(data.name, data.channel, data.volume, data.isLoop, data.fadeTime, data.delay, flag: flag);
 }
Beispiel #29
0
 // Start is called before the first frame update
 void Start()
 {
     AudioPlayManager.PlayMusic2D("boss2", 1, 1f);
 }
 private void OnClick()
 {
     AudioPlayManager.PlaySFX2D(audioName, volume);
 }