Kaynağa Gözat

添加剧情对话系统运行的状态

leiyasi 1 yıl önce
ebeveyn
işleme
e871390d9e

+ 22 - 2
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs

@@ -43,7 +43,8 @@ namespace GFGGame
         private string _currentWords;
         private string _storyStartID;
         private string lastTextFieldType;   // 上一段文本框的类型
-        private bool IsTeaParty;    //是否是茶话会里的对话
+        private bool IsTeaParty;            //是否是茶话会里的对话
+        private bool _work;                 // 对话系统运行状态,true:正常运行; false:停止运行
 
         TypingFadeEffectPro _typingEffect;
 
@@ -113,6 +114,7 @@ namespace GFGGame
             base.OnShown();
 
             // 初始化
+            _work = true;
             MusicManager.Instance.Stop();
             MusicManager.Instance.SetVolume(0);
             _ui.m_hideAnimMask.Play();
@@ -186,10 +188,13 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
+            _work = false;
+
             Timers.inst.Remove(UpdateShake);
             Timers.inst.Remove(OnScreenEffectComplete);
             ScreenBlackController.Instance.HideBlack();
 
+            // 不是茶话会,则记录上一次自动播放按钮的状态
             if (!IsTeaParty)
             {
                 _lastStartAutoPlay = _autoPlay;
@@ -263,7 +268,7 @@ namespace GFGGame
 
         private void OnBtnSkip()
         {
-
+            _work = false;
             Over(true);
         }
 
@@ -321,6 +326,11 @@ namespace GFGGame
 
         private void ShowNextStep(string nextStepId)
         {
+            if (!_work)
+            {
+                return;
+            }
+
             if (nextStepId != null)
             {
                 InitStepListById(nextStepId);
@@ -388,6 +398,11 @@ namespace GFGGame
 
         private IEnumerator InitStepContent(StoryDialogCfg storyDialogCfg)
         {
+            if (!_work)
+            {
+                yield break;
+            }
+
             _canClickBtnNext = false;
             StoryDialogDataManager.Instance.waitPicFade = false;
             _ui.m_hide.Play();  // 隐藏遮罩
@@ -464,6 +479,11 @@ namespace GFGGame
         /// <returns></returns>
         private IEnumerator ShowDialog(StoryDialogCfg storyDialogCfg)
         {
+            if (!_work)
+            {
+                yield break;
+            }
+
             if (storyDialogCfg.showChangeName == 1 && StorageDataManager.Instance.GetStorageValue(ConstStorageId.CHANGE_NAME) == 0)
             {
                 GameController.ShowCreateRole();