コード例 #1
0
        /// <summary>
        /// 播放音效,如果需要回调传入参数
        /// </summary>
        ///
        public uint PlayVoice(string _wwiseGameObject, string _voice_name, AkCallbackManager.EventCallback in_pfnCallback)
        {
            uint playeventid = 0;

            //检测当前wwise对象是否存在
            if (!wwiseGameObjectDic.ContainsKey(_wwiseGameObject))
            {
                Logger.LogError("Wwise global GameObect is no exist:" + _wwiseGameObject);
                return(playeventid);
            }
            if (string.IsNullOrEmpty(_voice_name))
            {
                if (in_pfnCallback != null)
                {
                    in_pfnCallback(null, AkCallbackType.AK_EndOfEvent, null);
                }
                return(playeventid);
            }

            if (!this.IsSoundEffect && _wwiseGameObject == this.wWiseGameSoundEffect ||
                !this.IsSoundOther && _wwiseGameObject == this.wWiseGameSoundOther)
            {
                if (in_pfnCallback != null)
                {
                    in_pfnCallback(null, AkCallbackType.AK_EndOfEvent, null);
                }
                return(playeventid);
            }
            playeventid = this.PlayVoice(_voice_name, this.wwiseGameObjectDic[_wwiseGameObject], in_pfnCallback);
            return(playeventid);
        }
コード例 #2
0
        /// <summary>
        /// Posts this Event on a GameObject.
        /// </summary>
        /// <param name="gameObject">The GameObject</param>
        /// <param name="flags"></param>
        /// <param name="callback"></param>
        /// <param name="cookie">Optional cookie received by the callback</param>
        /// <returns>Returns the playing ID.</returns>
        public uint Post(GameObject gameObject, uint flags, AkCallbackManager.EventCallback callback, object cookie = null)
        {
            if (!IsValid())
            {
                return(AkSoundEngine.AK_INVALID_PLAYING_ID);
            }

            uint playingId = AkSoundEngine.PostEvent(GetID(), gameObject, flags, callback, cookie);

            VerifyPlayingID(playingId);
            return(playingId);
        }
コード例 #3
0
        /// <summary>
        ///     Posts this Event on a GameObject.
        /// </summary>
        /// <param name="gameObject">The GameObject</param>
        /// <param name="flags"></param>
        /// <param name="callback"></param>
        /// <param name="cookie">Optional cookie received by the callback</param>
        /// <returns>Returns the playing ID.</returns>
        public uint Post(UnityEngine.GameObject gameObject, CallbackFlags flags, AkCallbackManager.EventCallback callback,
                         object cookie = null)
        {
            if (!IsValid())
            {
                return(AkSoundEngine.AK_INVALID_PLAYING_ID);
            }

            var playingId = AkSoundEngine.PostEvent(Id, gameObject, flags.value, callback, cookie);

            VerifyPlayingID(playingId);
            return(playingId);
        }
コード例 #4
0
        /// <summary>
        /// 播放声音
        /// </summary>
        /// <param name="_voice_name"></param>
        /// <param name="_obj"></param>
        private uint PlayVoice(string _voice_name, GameObject _obj, AkCallbackManager.EventCallback in_pfnCallback)
        {
            uint playeventid = 0;

            //判断是否有事件
            if (allBnkDic.ContainsKey(_voice_name))
            {
                //判断是否加载资源包
                if (!loadedBnkResource.Contains(allBnkDic[_voice_name].bnk))
                {
                    AkBankManager.LoadBank(allBnkDic[_voice_name].bnk, false, false);
                    loadedBnkResource.Add(allBnkDic[_voice_name].bnk);
                }
                if (in_pfnCallback != null)
                {
                    playeventid = AkSoundEngine.PostEvent(allBnkDic[_voice_name].id, _obj, (uint)AkCallbackType.AK_EndOfEvent, in_pfnCallback, null);
                }
                else
                {
                    playeventid = AkSoundEngine.PostEvent(allBnkDic[_voice_name].id, _obj);
                }
            }
            else
            {
                if (in_pfnCallback != null)
                {
                    in_pfnCallback(null, AkCallbackType.AK_EndOfEvent, null);
                }
                Logger.Log("声音【" + _voice_name + "】BNK文件不存在!");
                return(playeventid);
            }
            if (playeventid > 0)
            {
                if (allPlaying.ContainsKey(_voice_name))
                {
                    allPlaying[_voice_name] = playeventid;
                }
                else
                {
                    allPlaying.Add(_voice_name, playeventid);
                }
            }
            else
            {
                Logger.Log("声音【" + _voice_name + "】播放错误!!!!!!!!!!!");
            }

            return(playeventid);
        }
コード例 #5
0
    public void GetLevelManager()
    {
        ec = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => PlayCueEventCompleted(actionManager.currentAction)));
        Debug.Log("Load level complete is true");

        actionManager = GameObject.Find("LevelManager").GetComponent <ActionsManager>();

        Debug.Log("Found the level Manager");

        characterBehaviour = GetComponent <CharacterBehaviour>();

        characterBehaviour.GetActionsManager();

        PlayInitialCue(actionManager.nextCue, actionManager.currentAction);
    }
コード例 #6
0
ファイル: WwiseTypes.cs プロジェクト: mengtest/MyGame
        /// <summary>
        /// Posts this event on a gameobject.
        /// </summary>
        /// <param name="gameObject">The GameObject</param>
        /// <param name="flags"></param>
        /// <param name="callback"></param>
        /// <param name="cookie">Optional cookie received by the callback</param>
        /// <returns>Returns the playing ID.</returns>
        public uint Post(GameObject gameObject, CallbackFlags flags, AkCallbackManager.EventCallback callback, object cookie = null)
        {
#if !DISABLE_AKSOUNDENGINE
            if (!IsValid())
            {
                return(AkSoundEngine.AK_INVALID_PLAYING_ID);
            }

            uint playingId = AkSoundEngine.PostEvent(GetID(), gameObject, flags.value, callback, cookie);
            VerifyPlayingID(playingId);
            return(playingId);
#else
            return(AkSoundEngine.AK_INVALID_PLAYING_ID);
#endif
        }
コード例 #7
0
        public void Post(string evtName, GameObject gameObj = null, AkCallbackManager.EventCallback endCallback = null, object cookie = null)
        {
            GameObject obj2 = (gameObj != null) ? gameObj : this.defaultPlayObject;
            uint       num  = (endCallback != null) ? AkSoundEngine.PostEvent(evtName, obj2, 1, endCallback, cookie) : AkSoundEngine.PostEvent(evtName, obj2);

            if ((num == 0) && this.useImplicitLoading)
            {
                if (this.PrepareEvent(evtName))
                {
                    num = (endCallback != null) ? AkSoundEngine.PostEvent(evtName, obj2, 1, endCallback, cookie) : AkSoundEngine.PostEvent(evtName, obj2);
                }
                if (num == 0)
                {
                }
            }
        }
コード例 #8
0
 public static AkCallbackManager.EventCallbackPackage Create(AkCallbackManager.EventCallback in_cb, object in_cookie, ref uint io_Flags)
 {
     if (io_Flags == 0u || in_cb == null)
     {
         io_Flags = 0u;
         return(null);
     }
     AkCallbackManager.EventCallbackPackage eventCallbackPackage = new AkCallbackManager.EventCallbackPackage();
     eventCallbackPackage.m_Callback          = in_cb;
     eventCallbackPackage.m_Cookie            = in_cookie;
     eventCallbackPackage.m_bNotifyEndOfEvent = ((io_Flags & 1u) != 0u);
     io_Flags |= 1u;
     AkCallbackManager.m_mapEventCallbacks.set_Item(eventCallbackPackage.GetHashCode(), eventCallbackPackage);
     AkCallbackManager.m_LastAddedEventPackage = eventCallbackPackage;
     return(eventCallbackPackage);
 }
コード例 #9
0
 public static AkCallbackManager.EventCallbackPackage Create(AkCallbackManager.EventCallback in_cb, object in_cookie, ref uint io_Flags)
 {
     if ((io_Flags == 0) || (in_cb == null))
     {
         io_Flags = 0;
         return(null);
     }
     AkCallbackManager.EventCallbackPackage package = new AkCallbackManager.EventCallbackPackage {
         m_Callback          = in_cb,
         m_Cookie            = in_cookie,
         m_bNotifyEndOfEvent = (io_Flags & 1) != 0
     };
     io_Flags |= 1;
     AkCallbackManager.m_mapEventCallbacks[package.GetHashCode()] = package;
     AkCallbackManager.m_LastAddedEventPackage = package;
     return(package);
 }
コード例 #10
0
    //FOR MULTIPLE ACTIONS
    public void ActionCompleteFeedback(string feedback, bool levelEnd)
    {
        if (actionManager.actionCounter <= actionManager.possibleActions.Length - 1)
        {
            actionManager.actionCounter += 1;
        }

        if (levelEnd == true)
        {
            AkCallbackManager.EventCallback actionCompleteCallback = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => SceneEnd()));
            AkSoundEngine.PostEvent(feedback, gameObject, (uint)AkCallbackType.AK_EndOfEvent, actionCompleteCallback, null);
        }
        if (levelEnd == false)
        {
            AkCallbackManager.EventCallback endSceneCallback = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => MoreActions()));
            AkSoundEngine.PostEvent(feedback, gameObject, (uint)AkCallbackType.AK_EndOfEvent, endSceneCallback, null);
        }
    }
コード例 #11
0
        /// <summary>
        ///     Posts this Event on a GameObject.
        /// </summary>
        /// <param name="gameObject">The GameObject</param>
        /// <param name="flags"></param>
        /// <param name="callback"></param>
        /// <param name="cookie">Optional cookie received by the callback</param>
        /// <returns>Returns the playing ID.</returns>
        public uint Post(UnityEngine.GameObject gameObject, CallbackFlags flags, AkCallbackManager.EventCallback callback,
                         object cookie = null)
        {
            if (!IsValid())
            {
                return(AkSoundEngine.AK_INVALID_PLAYING_ID);
            }

#if AK_WWISE_ADDRESSABLES && UNITY_ADDRESSABLES
            var args     = new object[] { gameObject, flags, callback, cookie };
            var argTypes = new System.Type[] { typeof(UnityEngine.GameObject),
                                               typeof(CallbackFlags), typeof(AkCallbackManager.EventCallback), typeof(object) };
            if (!AkAddressableBankManager.Instance.LoadedBankContainsEvent(Name, Id, this, "Post", argTypes, args))
            {
                return(AkSoundEngine.AK_PENDING_EVENT_LOAD_ID);
            }
#endif

            m_playingId = AkSoundEngine.PostEvent(Id, gameObject, flags.value, callback, cookie);
            VerifyPlayingID(m_playingId);
            return(m_playingId);
        }
コード例 #12
0
 public void PlayDeathTrack(string track)
 {
     AkSoundEngine.StopAll(gameObject);
     AkCallbackManager.EventCallback playerDeathTrack = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => PlayerDead()));
     AkSoundEngine.PostEvent(track, gameObject, (uint)AkCallbackType.AK_EndOfEvent, playerDeathTrack, null);
 }
コード例 #13
0
    public static uint PostEvent(string eventName, UnityEngine.GameObject gameObject, uint flags, AkCallbackManager.EventCallback callback, object cookie, uint numSources, AkExternalSourceInfo externalSources)
    {
        if (numSources > 1)
        {
            UnityEngine.Debug.LogError("WwiseUnity: This version of PostEvent only sends 1 external source to the sound engine.");
        }

        if (numSources == 0)
        {
            return(PostEvent(eventName, gameObject, flags, callback, cookie));
        }

        var array = new AkExternalSourceInfoArray(1);

        array[0] = externalSources;
        return(PostEvent(eventName, gameObject, flags, callback, cookie, 1, array));
    }
コード例 #14
0
    public static uint PostEvent(uint eventId, UnityEngine.GameObject gameObject, uint flags, AkCallbackManager.EventCallback callback, object cookie, uint numSources, AkExternalSourceInfo externalSources, uint playingId)
    {
        if (numSources > 1)
        {
            numSources = 1;
            UnityEngine.Debug.LogError("WwiseUnity: This version of PostEvent only sends 1 external source to the sound engine.");
        }

        var array = new AkExternalSourceInfoArray((int)numSources);

        if (numSources > 0)
        {
            array[0] = externalSources;
        }

        return(PostEvent(eventId, gameObject, flags, callback, cookie, numSources, array, playingId));
    }
コード例 #15
0
ファイル: Silence.cs プロジェクト: gnivler/Silence
            public static bool Prefix(string defId, string eventId, AkGameObj audioObject, AkCallbackManager.EventCallback audioEventCallback, ref bool __result)
            {
                // play everything except contract_lanceconfirm because you can't launch a mission without it
                if (modSettings.EnableBarks || defId != "audioeventdef_simgame_vo_barks")
                {
                    return(true);
                }
                if (eventId == "contract_lanceconfirm" || eventId == "skirmish_lanceconfirm")
                {
                    __result = AudioEventManager.PlayAudioEvent(AudioEventManager.GetAudioEvent(defId, eventId), audioObject, audioEventCallback);
                }

                return(false);
            }
コード例 #16
0
ファイル: AkSoundEngine.cs プロジェクト: dadebert/Semi
 public static extern uint orig_PostEvent(string in_pszEventName, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie, uint in_cExternals, AkExternalSourceInfo in_pExternalSources);
コード例 #17
0
ファイル: AkSoundEngine.cs プロジェクト: dadebert/Semi
 public static uint PostEvent(uint in_eventID, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie)
 {
     WWiseAudioBridge.Logger.Debug($"in_eventID = {in_eventID}, in_gameObjectID = {in_gameObjectID}, in_uFlags = {in_uFlags} in_pfnCallback = {in_pfnCallback} in_pCookie = {in_pCookie}");
     return(orig_PostEvent(in_eventID, in_gameObjectID, in_uFlags, in_pfnCallback, in_pCookie));
 }
コード例 #18
0
ファイル: AkSoundEngine.cs プロジェクト: dadebert/Semi
 public static uint PostEvent(uint in_eventID, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie, uint in_cExternals, AkExternalSourceInfo in_pExternalSources, uint in_PlayingID)
 {
     WWiseAudioBridge.Logger.Debug($"in_eventID = {in_eventID}, in_gameObjectID = {in_gameObjectID}, in_uFlags = {in_uFlags} in_pfnCallback = {in_pfnCallback} in_pCookie = {in_pCookie} in_cExternals = {in_cExternals} in_pExternalSources = {in_pExternalSources} in_PlayingID = {in_PlayingID}");
     return(orig_PostEvent(in_eventID, in_gameObjectID, in_uFlags, in_pfnCallback, in_pCookie, in_cExternals, in_pExternalSources, in_PlayingID));
 }
コード例 #19
0
 public void WaitForFeedback(string firstTrack, string secondTrack)
 {
     AkCallbackManager.EventCallback playTrackThenFeedback = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => PlayNextTrack(secondTrack)));
     AkSoundEngine.PostEvent(firstTrack, gameObject, (uint)AkCallbackType.AK_EndOfEvent, playTrackThenFeedback, null);
 }
コード例 #20
0
ファイル: AkSoundEngine.cs プロジェクト: dadebert/Semi
        public static uint PostEvent(string in_pszEventName, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie)
        {
            WWiseAudioBridge.Logger.Debug($"in_pszEventName = '{in_pszEventName}' in_gameObjectID = {in_gameObjectID}, in_uFlags = {in_uFlags}, in_pfnCallback = {in_pfnCallback}, in_pCookie = {in_pCookie}");
            WWiseAudioBridge.Logger.Debug($"String key, patched");
            var name = WWiseAudioBridge.PostEventOrReturnWWiseEventName((ID)in_pszEventName.ToLowerInvariant(), in_gameObjectID);

            if (name == null)
            {
                return(0);
            }
            return(orig_PostEvent(in_pszEventName, in_gameObjectID, in_uFlags, in_pfnCallback, in_pCookie));
        }
コード例 #21
0
ファイル: AkSoundEngine.cs プロジェクト: dadebert/Semi
 public static extern uint orig_PostEvent(string in_pszEventName, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie);
コード例 #22
0
ファイル: AkSoundEngine.cs プロジェクト: dadebert/Semi
 public static extern uint orig_PostEvent(uint in_eventID, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie, uint in_cExternals, AkExternalSourceInfo in_pExternalSources, uint in_PlayingID);
コード例 #23
0
ファイル: AudioTriggers.cs プロジェクト: bhaddad5/SheListens
 public static uint PostEvent(string s, GameObject g, AkCallbackManager.EventCallback callback)
 {
     return(PostEvent(s, g, callback, null));
 }
コード例 #24
0
ファイル: AkMIDIPost.cs プロジェクト: MCRubika/JUMPING-JACK
 public uint PostOnEvent(uint in_eventID, ulong in_gameObjectID, uint in_uNumPosts, bool in_bAbsoluteOffsets, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie, uint in_playingID)
 {
     in_pCookie = AkCallbackManager.EventCallbackPackage.Create(in_pfnCallback, in_pCookie, ref in_uFlags);
     {
         uint ret = AkSoundEnginePINVOKE.CSharp_AkMIDIPost_PostOnEvent__SWIG_3(swigCPtr, in_eventID, in_gameObjectID, in_uNumPosts, in_bAbsoluteOffsets, in_uFlags, in_uFlags != 0 ? (global::System.IntPtr) 1 : global::System.IntPtr.Zero, in_pCookie != null ? (global::System.IntPtr)in_pCookie.GetHashCode() : global::System.IntPtr.Zero, in_playingID);
         AkCallbackManager.SetLastAddedPlayingID(ret);
         return(ret);
     }
 }
コード例 #25
0
ファイル: AudioTriggers.cs プロジェクト: bhaddad5/SheListens
 public static uint PostEvent(string s, GameObject g, AkCallbackManager.EventCallback callback, object cookie)
 {
     return(AkSoundEngine.PostEvent(s, g, (uint)AkCallbackType.AK_EndOfEvent, callback, cookie));
 }
コード例 #26
0
ファイル: AkSoundEngine.cs プロジェクト: dadebert/Semi
 public static extern uint orig_PostEvent(uint in_eventID, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie, uint in_cExternals);
コード例 #27
0
ファイル: AkMIDIPost.cs プロジェクト: MCRubika/JUMPING-JACK
    public uint PostOnEvent(uint in_eventID, UnityEngine.GameObject in_gameObjectID, uint in_uNumPosts, bool in_bAbsoluteOffsets, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie, uint in_playingID)
    {
        var in_gameObjectID_id = AkSoundEngine.GetAkGameObjectID(in_gameObjectID);

        AkSoundEngine.PreGameObjectAPICall(in_gameObjectID, in_gameObjectID_id);
        in_pCookie = AkCallbackManager.EventCallbackPackage.Create(in_pfnCallback, in_pCookie, ref in_uFlags);

        uint ret = PostOnEvent(in_eventID, in_gameObjectID_id, in_uNumPosts, in_bAbsoluteOffsets, in_uFlags, in_pfnCallback, in_pCookie, in_playingID);

        AkCallbackManager.SetLastAddedPlayingID(ret);
        return(ret);
    }
コード例 #28
0
 public static void Play(string eventName, GameObject source, AkCallbackManager.EventCallback callback)
 {
     AkSoundEngine.PostEvent(eventName, source, (uint)AkCallbackType.AK_EndOfEvent, callback, eventName);
 }
コード例 #29
0
 public static void Play(string eventName, GameObject source, AkCallbackManager.EventCallback callback, float delay = 0f)
 {
     DOVirtual.DelayedCall(delay, () => {
         AkSoundEngine.PostEvent(eventName, source, (uint)AkCallbackType.AK_EndOfEvent, callback, eventName);
     });
 }
コード例 #30
0
    //private void Update()
    //{
    //    if (GameManager.Instance.loadLevelComplete == true)
    //    {
    //        //GameManager.Instance.loadLevelComplete = false;
    //        Debug.Log("Load level complete is true");

    //        actionManager = GameObject.Find("LevelManager").GetComponent<ActionsManager>();

    //        Debug.Log("Found the level Manager");

    //        PlayInitialCue(actionManager.nextCue, actionManager.currentAction);


    //        if (actionManager.currentAction != "None")
    //        {

    //        }
    //    }

    //}


    /// <summary>
    /// PLEASE LOOK INTO THIS ONTRIGGER. WHAT'S REALLY NECESSARY
    /// </summary>
    private void OnTriggerEnter(Collider other)
    {
        TriggerScript ts = other.GetComponent <TriggerScript>();


        if (ts != null)
        {
            if (ts.action == "")
            {
                if (ts.playFrom != null)
                {
                    AkSoundEngine.PostEvent(ts.eventName, ts.playFrom);
                    //other.gameObject.SetActive(false);
                }
                else
                {
                    AkSoundEngine.PostEvent(ts.eventName, gameObject);
                    //other.gameObject.SetActive(false);
                }
            }

            if (ts.action != "")
            {
                if (ts.eventName != "")
                {
                    AkCallbackManager.EventCallback newActionEvent;
                    newActionEvent = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => PlayCueEventCompleted(ts.action)));
                    AkSoundEngine.PostEvent(ts.eventName, gameObject, (uint)AkCallbackType.AK_EndOfEvent, newActionEvent, null);
                    //other.gameObject.SetActive(false);
                }
                else
                {
                    PlayCueEventCompleted(ts.action);
                    //other.gameObject.SetActive(false);
                }
            }

            ChangeBehaviourMoveState(ts.movementStatus);
        }

        if (other.gameObject.name == "SceneEnd")
        {
            if (ts != null)
            {
                AkSoundEngine.StopAll(gameObject);
                AkCallbackManager.EventCallback cutscene_endScene = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => SceneEnd()));
                AkSoundEngine.PostEvent(ts.eventName, gameObject, (uint)AkCallbackType.AK_EndOfEvent, cutscene_endScene, null);
            }
            else
            {
                SceneEnd();
            }
        }

        if (other.gameObject.name == "Well_To_Forest")
        {
            AkSoundEngine.PostEvent("Well_Forest", gameObject);

            uint eventId;
            eventId = AkSoundEngine.GetIDFromString("Home_To_Well");
            AkSoundEngine.ExecuteActionOnEvent(eventId, AkActionOnEventType.AkActionOnEventType_Stop, gameObject, 0, AkCurveInterpolation.AkCurveInterpolation_Linear);
        }

        if (other.gameObject.name == "JumpTheTree")
        {
            GameObject bootMusic = GameObject.Find("Boot Music");

            uint eventId;
            eventId = AkSoundEngine.GetIDFromString("global_bg");
            AkSoundEngine.ExecuteActionOnEvent(eventId, AkActionOnEventType.AkActionOnEventType_Stop, bootMusic, 5, AkCurveInterpolation.AkCurveInterpolation_Linear);


            AkCallbackManager.EventCallback pauseBgMusic = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => ResumeBGMusic()));
            AkSoundEngine.PostEvent("tree_fall_music", bootMusic, (uint)AkCallbackType.AK_EndOfEvent, pauseBgMusic, null);
        }

        if (other.gameObject.name == "WellMusic")
        {
            GameObject bootMusic = GameObject.Find("Boot Music");

            uint eventId;
            eventId = AkSoundEngine.GetIDFromString("global_bg");
            AkSoundEngine.ExecuteActionOnEvent(eventId, AkActionOnEventType.AkActionOnEventType_Stop, bootMusic, 5000, AkCurveInterpolation.AkCurveInterpolation_Linear);


            AkCallbackManager.EventCallback pauseBgMusic = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => ResumeBGMusic()));
            AkSoundEngine.PostEvent("well_music", bootMusic, (uint)AkCallbackType.AK_EndOfEvent, pauseBgMusic, null);
        }

        if (other.gameObject.name == "MusicFour")
        {
            GameObject bootMusic = GameObject.Find("Boot Music");

            uint eventId;
            eventId = AkSoundEngine.GetIDFromString("global_bg");
            AkSoundEngine.ExecuteActionOnEvent(eventId, AkActionOnEventType.AkActionOnEventType_Stop, bootMusic, 5000, AkCurveInterpolation.AkCurveInterpolation_Linear);


            AkCallbackManager.EventCallback pauseBgMusic = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => ResumeBGMusic()));
            AkSoundEngine.PostEvent("cutscene_four_music", bootMusic, (uint)AkCallbackType.AK_EndOfEvent, pauseBgMusic, null);
        }

        if (other.gameObject.name == "Forest_Chase")
        {
            //AkSoundEngine.PostEvent("Forest_Chase", gameObject);

            uint eventId;
            eventId = AkSoundEngine.GetIDFromString("Well_Forest");
            AkSoundEngine.ExecuteActionOnEvent(eventId, AkActionOnEventType.AkActionOnEventType_Stop, gameObject, 5000, AkCurveInterpolation.AkCurveInterpolation_Linear);
        }


        if (other.gameObject.name == "SwingStart")
        {
            SwingHandler         sh         = other.GetComponent <SwingHandler>();
            AnimationEventScript animEvents = sh.swing.GetComponent <AnimationEventScript>();
            if (animEvents != null)
            {
                animEvents.canListenForEvents = true;
            }

            //other.gameObject.SetActive(false);
        }

        if (other.gameObject.name == "SwingEnd")
        {
            //other.gameObject.SetActive(false);
            SwingHandler         sh         = other.GetComponent <SwingHandler>();
            AnimationEventScript animEvents = sh.swing.GetComponent <AnimationEventScript>();
            if (animEvents != null)
            {
                animEvents.canListenForEvents = false;
                AkSoundEngine.PostEvent("Move_On", gameObject);
            }
        }

        other.gameObject.SetActive(false);
    }