diff --git a/Assets/Scripts/Test/OptionTest.cs b/Assets/Scripts/Test/OptionTest.cs index 8ee45b6d3..93aef3842 100644 --- a/Assets/Scripts/Test/OptionTest.cs +++ b/Assets/Scripts/Test/OptionTest.cs @@ -64,7 +64,7 @@ namespace AibisDream.Test public void OnDestroy() { // 注意在合适的时机移除命令 - DialogController.Instance.RemoveOptionCommand("show_buttons"); + DialogController.Instance?.RemoveOptionCommand("show_buttons"); } [YarnCommand("change_button_name")] diff --git a/Assets/Scripts/UI/DialogUiViewer.cs b/Assets/Scripts/UI/DialogUiViewer.cs index dc62ea37f..ce1c009fb 100644 --- a/Assets/Scripts/UI/DialogUiViewer.cs +++ b/Assets/Scripts/UI/DialogUiViewer.cs @@ -62,6 +62,7 @@ namespace AibisDream public void ShowLine(string dialogLine, string actor, Action nextStep) { dialogBox.SetActive(true); + dialogText.ShowText(""); dialogText.gameObject.SetActive(true); choiceBox.SetActive(false); @@ -89,6 +90,7 @@ namespace AibisDream public void ShowAutoLine(string dialogLine, string actor, Action nextStep) { dialogBox.SetActive(true); + dialogText.ShowText(""); dialogText.gameObject.SetActive(true); choiceBox.SetActive(false); diff --git a/Assets/Scripts/UI/MainUIViewer.cs b/Assets/Scripts/UI/MainUIViewer.cs index 5f05fcd47..f35299e80 100644 --- a/Assets/Scripts/UI/MainUIViewer.cs +++ b/Assets/Scripts/UI/MainUIViewer.cs @@ -32,7 +32,7 @@ namespace AibisDream public IEnumerator FadeInSync(float duration) { - yield return _blackImage.FadeInSync(duration); + return _blackImage.FadeInSync(duration); } public void FadeOut(float duration) @@ -42,7 +42,7 @@ namespace AibisDream public IEnumerator FadeOutSync(float duration) { - yield return _blackImage.FadeOutSync(duration); + return _blackImage.FadeOutSync(duration); } #endregion @@ -58,7 +58,7 @@ namespace AibisDream public IEnumerator TVFadeInSync(float duration) { _news.FadeIn(duration); - yield return _tvScene.FadeInSync(duration); + return _tvScene.FadeInSync(duration); } public void TVFadeOut(float duration) @@ -70,7 +70,7 @@ namespace AibisDream public IEnumerator TVFadeOutSync(float duration) { _news.FadeOut(duration); - yield return _tvScene.FadeOutSync(duration); + return _tvScene.FadeOutSync(duration); } public void SwitchTV(string newsName) diff --git a/Assets/Scripts/Utility/FadeImage.cs b/Assets/Scripts/Utility/FadeImage.cs index da9155bf2..ac627d5a2 100644 --- a/Assets/Scripts/Utility/FadeImage.cs +++ b/Assets/Scripts/Utility/FadeImage.cs @@ -47,7 +47,10 @@ namespace AibisDream { _image.gameObject.SetActive(true); var tweener = _image.DOBlendableColor(Color.white, duration); - yield return tweener; + while (tweener.active && !tweener.IsComplete()) + { + yield return null; + } } #endregion @@ -67,11 +70,10 @@ namespace AibisDream { _image.gameObject.SetActive(true); var tweener = _image.DOBlendableColor(Color.clear, duration); - if (!tweener.IsComplete()) + while (tweener.active && !tweener.IsComplete()) { yield return null; } - // yield return tweener; _image.gameObject.SetActive(false); } diff --git a/Assets/Scripts/Utility/FadeSprite.cs b/Assets/Scripts/Utility/FadeSprite.cs index 3888da5f8..0b5d72693 100644 --- a/Assets/Scripts/Utility/FadeSprite.cs +++ b/Assets/Scripts/Utility/FadeSprite.cs @@ -30,7 +30,7 @@ namespace AibisDream { _spriteRenderer.gameObject.SetActive(true); var tweener = _spriteRenderer.DOFade(1, duration); - if (!tweener.IsComplete()) + while (tweener.active && !tweener.IsComplete()) { yield return null; } @@ -39,16 +39,12 @@ namespace AibisDream public IEnumerator FadeOutSync(float duration) { var tweener = _spriteRenderer.DOFade(0, duration); - if (!tweener.IsComplete()) + while (tweener.active && !tweener.IsComplete()) { - yield return null; } - else - { - _spriteRenderer.gameObject.SetActive(false); - } - + + _spriteRenderer.gameObject.SetActive(false); } public void Show() @@ -62,10 +58,10 @@ namespace AibisDream _spriteRenderer.color = Color.clear; _spriteRenderer.gameObject.SetActive(false); } - + public void SwitchImage(string imagePath) { - _spriteRenderer.sprite = Resources.Load("Art/Character/"+imagePath); + _spriteRenderer.sprite = Resources.Load("Art/Character/" + imagePath); } public IEnumerator MoveTo(Vector3 targetPos, float duration)