/// <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); }
/// <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); }
/// <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); }
/// <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); }
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); }
/// <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 }
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) { } } }
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); }
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); }
//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); } }
/// <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); }
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); }
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)); }
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)); }
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); }
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);
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)); }
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)); }
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); }
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)); }
public static extern uint orig_PostEvent(string in_pszEventName, GameObject in_gameObjectID, uint in_uFlags, AkCallbackManager.EventCallback in_pfnCallback, object in_pCookie);
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);
public static uint PostEvent(string s, GameObject g, AkCallbackManager.EventCallback callback) { return(PostEvent(s, g, callback, null)); }
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); } }
public static uint PostEvent(string s, GameObject g, AkCallbackManager.EventCallback callback, object cookie) { return(AkSoundEngine.PostEvent(s, g, (uint)AkCallbackType.AK_EndOfEvent, callback, cookie)); }
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);
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); }
public static void Play(string eventName, GameObject source, AkCallbackManager.EventCallback callback) { AkSoundEngine.PostEvent(eventName, source, (uint)AkCallbackType.AK_EndOfEvent, callback, eventName); }
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); }); }
//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); }