UnityScreenNavigatorでページ遷移アニメーション中のクリック操作によるエラーを解消したいです

前提

アセット作者に質問するべきか迷いましたが、簡単な内容かもしれないので一旦こちらに質問させて頂きます。

UnityScreenNavigatorでページ遷移アニメーション中に同じ遷移ボタンをクリック操作すると、以下エラーが発生します。
エラー内容として、
「シートが既にアクティブであるため、遷移できません。」
とあるため、ページ遷移中に同じ遷移処理が走って失敗するようです。
また、以下エラー及びコードはシートだけですが、Page、Modalでも同じエラーが発生します。

実現したいこと

エラーの解消方法が知りたいです。

発生している問題・エラーメッセージ

InvalidOperationException: Cannot transition because the sheet is already active. UnityScreenNavigator.Runtime.Core.Sheet.SheetContainer+<ShowRoutine>d__40.MoveNext () (at Library/PackageCache/com.harumak.unityscreennavigator@080bc070f4/Runtime/Core/Sheet/SheetContainer.cs:303) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <823fb226a3f9439cb41fdcb61f9c86a1>:0) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) UnityScreenNavigator.Runtime.Foundation.Coroutine.CoroutineManager:StartCoroutineInternal(IEnumerator, Boolean, Action`1, Action`1, Action) (at Library/PackageCache/com.harumak.unityscreennavigator@080bc070f4/Runtime/Foundation/Coroutine/CoroutineManager.cs:81) UnityScreenNavigator.Runtime.Foundation.Coroutine.CoroutineManager:Run(IEnumerator) (at Library/PackageCache/com.harumak.unityscreennavigator@080bc070f4/Runtime/Foundation/Coroutine/CoroutineManager.cs:65) UnityScreenNavigator.Runtime.Core.Sheet.SheetContainer:Show(String, Boolean) (at Library/PackageCache/com.harumak.unityscreennavigator@080bc070f4/Runtime/Core/Sheet/SheetContainer.cs:197) <TransitionSheet>d__20:MoveNext() (at Assets/Project/Script/Paging/TransitionPage.cs:634) ←シートのコール元

該当のソースコード

IEnumerator TransitionSheet(string sheetName) { if (_sheetContainer.IsInTransition) { yield break; } if (_sheetContainer.ActiveSheet != null) { Debug.Log("アクティブ:" + _sheetContainer.ActiveSheet.name + " -> " + sheetName); if (_sheetContainer.ActiveSheet.name == sheetName) { yield break; } } Debug.Log("表示:" + sheetName); // Sheetを表示する AsyncProcessHandle showHandle = _sheetContainer.Show(sheetName, true); //←コール元 yield return showHandle; }

試したこと

以下公式の説明で
「遷移開始から終了までは、画面のクリックなどのインタラクションは全て無効になります。
設定を変更すると、遷移中のインタラクションを有効にすることができます。
有効にするにはUnityScreenNavigatorSettingsのEnable Interaction In Transitionをtrueに設定します。」
とあるため、UnityScreenNavigatorSettingsのEnable Interaction In Transitionのチェックを確認したがチェックはない。
しかし、クリック操作はできる状態。
(そもそもUnityScreenNavigatorSettingsの扱いが今一分かっていないので、を新規作成して任意フォルダの下に保存した状態のままなので、何か間違えている?)

https://github.com/Haruma-K/UnityScreenNavigator/blob/master/README_JA.md

補足情報(FW/ツールのバージョンなど)

言語:C#
Unity 2021.3.1f1

コメントを投稿

0 コメント