コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
ファイル: CGManager.cs プロジェクト: frozen4/UnityPlus
    /// 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();
    }
コード例 #4
0
ファイル: SequenceData.cs プロジェクト: qipa/CutScene
    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);
    }
コード例 #5
0
ファイル: SequenceData.cs プロジェクト: qipa/CutScene
    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);
    }
コード例 #6
0
ファイル: CGManager.cs プロジェクト: frozen4/UnityPlus
    /// 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;
    }
コード例 #7
0
        /// <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();
        }
コード例 #8
0
 /// <summary>
 /// 当剧情动画暂停播放时处理
 /// </summary>
 private void pauseCutsceneEvent(object obj, CutsceneEventArgs args)
 {
 }
コード例 #9
0
 private void CutscenePaused(object sender, CutsceneEventArgs e)
 {
     NotifyLua("CutscenePaused");
 }