/// <summary> /// 当剧情动画开始播放时处理 /// </summary> private void playCutsceneEvent(object obj, CutsceneEventArgs args) { Debugger.Log(string.Format("play cutscene : {0}", curCutscene.name)); this.OnCutsceneEvent(); PlotCamera[] plotCameraArr = curCutscene.GetComponentsInChildren <PlotCamera>(true); for (int i = 0; i < plotCameraArr.Length; i++) { if (plotCameraArr[i].IsMainCamera) { plotCameraArr[i].Enable(fadeMainCamera); break; } } if (curCutscene.IsDebug) { return; } //发送触发协议保存记录 LuaFunction sendFunc = LuaManager.mainLua.GetFunction("CutsceneHandler.SendTrigger"); if (sendFunc != null && !curCutscene.IsLooping) { sendFunc.BeginPCall(); string cutsceneId = curCutscene.gameObject.name.Replace("Cutscene", ""); cutsceneId = cutsceneId.Replace("(Clone)", "").Trim(); sendFunc.Push(Convert.ToInt32(cutsceneId)); sendFunc.PCall(); sendFunc.EndPCall(); } }
private void CutsceneFinished(object sender, CutsceneEventArgs e) { this._shouldStop = true; Cutscene cutScene = sender as Cutscene; cutScene.CutsceneFinished -= new CutsceneHandler(this.CutsceneFinished); uint runtimeID = Singleton <AvatarManager> .Instance.GetLocalAvatar().GetRuntimeID(); Singleton <EventManager> .Instance.FireEvent(new EvtCinemaFinish(runtimeID, cutScene), MPEventDispatchMode.Normal); this._mainCamera.TransitToFollow(); }
/// CG播放完回调 public void OnCutsceneFinished(object sender, CutsceneEventArgs e) { Cutscene cs = sender as Cutscene; if (cs != _CurCutscene || _CurCutscene == null) { Common.HobaDebuger.LogWarningFormat("Logic Error: when call OnCutsceneStarted, another cg is playing"); return; } var useCGCamera = _CurCGGlobal.cameraType == CGGlobal.CameraType.CGCamera; if (useCGCamera) { ChangeOtherSetting(true, _CurCGGlobal.UseUICamera); DynamicEffectManager.Instance.EnterCGEffect(-1, null); } { IntPtr L = LuaScriptMgr.Instance.GetL(); try { var ls = LuaScriptMgr.Instance.GetLuaState(); var oldTop = LuaDLL.lua_gettop(L); LuaDLL.lua_getglobal(L, "OnCGFinish"); LuaDLL.lua_pushboolean(L, useCGCamera); if (!ls.PCall(1, 0)) { Common.HobaDebuger.LogLuaError(LuaDLL.lua_tostring(L, -1)); } LuaDLL.lua_settop(L, oldTop); } catch (Exception ex) { Debug.LogException(ex); Debug.LogError(LuaStatic.GetTraceBackInfo(L)); } } _CurCutscene.CutsceneFinished -= OnCutsceneFinished; _CurCutscene = null; if (_CgXmlConfig.IsVideo) { EntryPoint.Instance.VideoManager.StopVideo(); } Destroy(_CurCGGlobal.gameObject); _CurCGGlobal = null; _CgXmlConfig.Reset(); }
void OnCuteSceneFinished(object sender, CutsceneEventArgs arg) { if (cutscene == null) { return; } LuaInterface.LuaFunction func = LuaManager.GetFunction("SequenceCall.OnFinished"); string name = cutscene.name; int index = name.IndexOf("("); if (index >= 0) { name = name.Substring(0, index); } LuaManager.CallFunc_VX(func, name); }
void OnMessage(object sender, CutsceneEventArgs arg) { if (cutscene == null) { return; } LuaInterface.LuaFunction func = LuaManager.GetFunction("SequenceCall.OnMessage"); string name = cutscene.name; int index = name.IndexOf("("); if (index >= 0) { name = name.Substring(0, index); } LuaManager.CallFunc_VX(func, arg.msg, arg.param); }
/// CG开始播放 public void OnCutsceneStarted(object sender, CutsceneEventArgs e) { Cutscene cs = sender as Cutscene; if (cs != _CurCutscene || _CurCutscene == null) { Common.HobaDebuger.LogWarningFormat("Logic Error: when call OnCutsceneStarted, another cg is playing"); return; } var useCGCamera = _CurCGGlobal.cameraType == CGGlobal.CameraType.CGCamera; if (useCGCamera) { ChangeOtherSetting(false, _CurCGGlobal.UseUICamera); if (_CurCGGlobal.WeatherId > 0) { DynamicEffectManager.Instance.EnterCGEffect(_CurCGGlobal.WeatherId, _CurCGGlobal.GetComponentsInChildren <PostProcessChain>(true)); } } { IntPtr L = LuaScriptMgr.Instance.GetL(); try { var ls = LuaScriptMgr.Instance.GetLuaState(); var oldTop = LuaDLL.lua_gettop(L); LuaDLL.lua_getglobal(L, "OnCGStart"); LuaDLL.lua_pushboolean(L, useCGCamera); if (!ls.PCall(1, 0)) { Common.HobaDebuger.LogLuaError(LuaDLL.lua_tostring(L, -1)); } LuaDLL.lua_settop(L, oldTop); } catch (Exception ex) { Debug.LogException(ex); Debug.LogError(LuaStatic.GetTraceBackInfo(L)); } } _CurCutscene.CutsceneStarted -= OnCutsceneStarted; }
/// <summary> /// 当剧情动画完成时处理 /// </summary> private void finishCutsceneEvent(object obj, CutsceneEventArgs args) { curCutscene = null; this.BackNomalEvent(); Cutscene cutscene = obj as Cutscene; int cutsceneId = Convert.ToInt32(cutscene.gameObject.name.Substring(8)); caches.Remove(cutscene.gameObject); GameObject.Destroy(cutscene.gameObject); catchCutscenes.Remove(cutsceneId); LuaTable triggerCtrl = LuaManager.mainLua.GetTable("CutsceneCtrl.inst"); LuaFunction finishFunc = triggerCtrl.GetLuaFunction("finishCutscene"); finishFunc.BeginPCall(); finishFunc.Push(triggerCtrl); finishFunc.Push(cutsceneId); finishFunc.PCall(); finishFunc.EndPCall(); }
/// <summary> /// 当剧情动画暂停播放时处理 /// </summary> private void pauseCutsceneEvent(object obj, CutsceneEventArgs args) { }
private void CutscenePaused(object sender, CutsceneEventArgs e) { NotifyLua("CutscenePaused"); }