コード例 #1
0
    protected virtual void Awake()
    {
        if (!Application.isPlaying)
        {
            return;
        }

        if (instance != null)
        {
            Destroy(gameObject);
            return;
        }

        instance = GetComponent <AFmodAudioSystem>();
        if (!transform.parent)
        {
            DontDestroyOnLoad(gameObject);
        }

        strFilePath = Application.streamingAssetsPath + "/Audio/";
        if (system == null)
        {
            Factory.System_Create(out system);
            system.setSoftwareFormat(48000, SPEAKERMODE.MAX, 0);
            system.init(64, INITFLAGS.NORMAL, (IntPtr)null);
        }

        FmodAudioManager.Init();
        InitSounds();
        DontDestroyOnLoad(gameObject);
    }
コード例 #2
0
    private void OnDestroy()
    {
        if (instance != this)
        {
            return;
        }

        if (system == null)
        {
            return;
        }

        int n = 0, m = 0;

        Memory.GetStats(out n, out m);
        FmodAudioManager.Release();
        //DOAll(fam => fam.Release());
        FmodSoundCreater.ReleaseInstance();
        system.close();
        system.release();
        system = null;
        Memory.GetStats(out n, out m);
        if (n > 0)
        {
            Debug.LogError("FmodAudioSystem Memory Leak:Current  " + n + " Maximum " + m);
        }
    }
コード例 #3
0
 //全局实例化
 internal static void Init()
 {
     audioManagerInstances = new FmodAudioManager[7];
     for (int i = 0; i < 7; i++)
     {
         audioManagerInstances[i] = new FmodAudioManager(i);
         audioManagerInstances[i].InitChannelGroup();
     }
 }
コード例 #4
0
ファイル: Test.cs プロジェクト: karsion/FmodAudioSystem
    // Update is called once per frame
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            FmodAudioManager.GetAudioManager(0).PlaySE(FmodSE.instance.coin);
        }

        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            FmodAudioManager.GetAudioManager(1).PlaySE(FmodSE.instance.coin);
        }
        if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            FmodAudioManager.GetAudioManager(2).PlaySE(FmodSE.instance.coin);
        }
        if (Input.GetKeyDown(KeyCode.Alpha4))
        {
            FmodAudioManager.GetAudioManager(3).PlaySE(FmodSE.instance.coin);
        }

        if (Input.GetKeyDown(KeyCode.Alpha5))
        {
            FmodAudioManager.GetAudioManager(4).PlaySE(FmodSE.instance.coin);
        }

        if (Input.GetKeyDown(KeyCode.Alpha6))
        {
            FmodAudioManager.GetAudioManager(5).PlaySE(FmodSE.instance.coin);
        }

        if (Input.GetKeyDown(KeyCode.Alpha7))
        {
            FmodAudioManager.GetAudioManagerGlobal().PlaySE(FmodSE.instance.coin);
        }

        if (Input.GetKeyDown(KeyCode.Alpha8))
        {
            FmodAudioManager.GetAudioManager(0).PlayVOC(FmodSE.instance.coin);
        }

        if (Input.GetKeyDown(KeyCode.Alpha9))
        {
            FmodAudioManager.GetAudioManager(0).PauseVOC(true);
        }

        if (Input.GetKeyDown(KeyCode.Alpha0))
        {
            FmodAudioManager.GetAudioManager(0).PauseVOC(false);
        }
    }
コード例 #5
0
 //Follow UnityEditor paused
 private static void Paused()
 {
     FmodAudioManager.DOAll(m => m.PauseAll(EditorApplication.isPaused));
 }