//正常播放完成 public void PlaybackFinished(WellFired.USSequencer sequencer) { m_IsPlay = false; if (m_SequencerCamera != null) { GameObject obj = GameObject.Find("MainCamera"); Camera camera = obj.GetComponent <Camera>(); if (camera != m_SequencerCamera) { camera.enabled = true; } } m_SequencerCamera = null; m_SequencerData = null; // 取消回调 if (sequencer != null) { sequencer.PlaybackFinished -= this.PlaybackFinished; sequencer.BeforeUpdate -= this.BeforeUpdate; } try { //显示npc Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem(); if (es != null) { es.ShowEntity(true); } //删除剧情gameobject if (m_SequencerGameObject != null) { GameObject.Destroy(m_SequencerGameObject); m_SequencerGameObject = null; } Debug.Log("清理剧情对象"); //清理剧情对象 ClearSequencerTempObject(); //打开声音 Client.ClientGlobal.Instance().MuteGameSound(false); } catch { goto Exit0; } Exit0: //隐藏提示 TipsManager.Instance.EnableTips(true); //DataManager.Manager<UIPanelManager>().ShowStoryCachePanel(); Debug.Log("剧情结束显示UI"); RoleStateBarManager.ShowHeadStatus(); //剧情结束隐藏黑边 DataManager.Manager <UIPanelManager>().HideStory(); Debug.Log("剧情结束隐藏黑边"); Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.STORY_PLAY_OVER, null); //却换到原场景 Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem(); if (m_MapID != 0) { // 剧情播放完毕加载原场景 table.MapDataBase data = GameTableManager.Instance.GetTableItem <table.MapDataBase>(m_MapID); if (data == null) { return; } table.ResourceDataBase resDB = GameTableManager.Instance.GetTableItem <table.ResourceDataBase>(data.dwResPath); if (resDB == null) { return; } if (rs != null) { string str = resDB.strPath; Engine.IScene scene = rs.EnterScene(ref str, SequencerManager.Instance()); if (scene != null) { ///加载场景 SequencerManager.Instance().Pause(); scene.StartLoad(Vector3.one); } } m_MapID = 0; } }
public void PlaySequencer(string strSequencer) { if (m_IsPlay) { return; } if (strSequencer == "") { return; } //隐藏npc //Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem(); //if (es != null) // es.ShowEntity(false); try { m_SequencerGameObject = WellFired.USSequencerLoad.LoadSequencerFromXml(strSequencer); } catch { PlaybackFinished(null); goto Exit0; } if (m_SequencerGameObject != null) { WellFired.USSequencer sequencer = m_SequencerGameObject.GetComponent <WellFired.USSequencer>(); if (sequencer != null) { sequencer.PlaybackFinished += this.PlaybackFinished; sequencer.BeforeUpdate += this.BeforeUpdate; m_IsPlay = true; if (m_IsPlay == true) { RoleStateBarManager.HideHeadStatus();//隐藏npc血条 //隐藏提示 TipsManager.Instance.EnableTips(false); //关闭声音 //IClientGlobal的MuteGameSound方法 Client.ClientGlobal.Instance().MuteGameSound(true); ///显示黑边 StoryPanel.StoryData data = new StoryPanel.StoryData(); data.Des = ""; data.ShowSkip = SequencerManager.Instance().IsShowSkipSequencerBtn(); data.SkipDlg = SequencerManager.Instance().OnSkipSequencer; data.ColliderClickDlg = SequencerManager.Instance().OnClickSequencer; ////隐藏npc Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem(); if (es != null) { es.ShowEntity(false); } } sequencer.Play(); } } Exit0: return; }