UnityシーンからUI(ボタン)をクリックしてマップへ戻った際のイベント継続について

作成日:
更新日:

この様な設定でUnityシーンを呼び出し ・マップシーンはアンロードしない ・変数は#0002を指定 ・Unityシーンから戻った後もイベントが続く

01_J7_WMQRQPA_9_MQ_3_SKT_3_H1_QXVMD_9938244ea3

 

こちら↓のUnityシーンからシーン上のボタンをクリックしてマップへ戻った際に続けてメッセージを表示すると次のようなエラーが出ます

01_J7_WN_3_C247_Z69_FF_7_CZVJP_438_N_c320f36713

エラー内容はこちら↓ MissingReferenceException: The object of type 'StandaloneInputModule' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.Component.GetComponents[T] () (at <f712b1dc50b4468388b9c5f95d0d0eaf>:0) UnityEngine.EventSystems.BaseInputModule.get_input () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/InputModules/BaseInputModule.cs:69) UnityEngine.EventSystems.StandaloneInputModule.GetRawMoveVector () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/InputModules/StandaloneInputModule.cs:455) UnityEngine.EventSystems.StandaloneInputModule.SendMoveEventToSelectedObject () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/InputModules/StandaloneInputModule.cs:483) UnityEngine.EventSystems.StandaloneInputModule.Process () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/InputModules/StandaloneInputModule.cs:285) UnityEngine.EventSystems.EventSystem.Update () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:514)

そもそもとして、Unityシーンを呼び出した後はその時点でイベントを終了させた方がいいのでしょうか?

ちなみに、サンプルの様に時間経過でマップへ戻る場合は続けてメッセージを表示させてもエラーは出ませんでした

コメント

作成日:

ご報告誠にありがとうございます。

弊社環境でテストしたところ、現象を再現することができませんでした。 Unityシーン側の設定について、詳細をお伺いしてもよろしいでしょうか。

お手数をおかけしますが、何卒よろしくお願い申し上げます。


作成日:

返答ありがとうございます そちらの環境では再現できないという事でしたので こちらのUnityシーンの設定を報告させて頂きます

01_J820_MQ_879_HND_5_G1_T7_SRV_4_M1_E_df8a594884

シーンにあるのはUIのみで背景にイメージとボタンを3つ配置しています その内のMapへ戻るというボタンを押すとマップシーンへ戻るようにしています

スクリプトはCanvasにアタッチして、各ボタンがクリックされた時にこのスクリプト内のメソッドを実行するようにしています

01_J821346266_DMGCZ_184_NCQJVP_a1a0cdf57f

01_J8217005_B1_PMES_7_NTKWZFYBN_d71857301c

スクリプトの内容はこの様にしています 確認のため時間経過で戻るようにもしていますが、このコードを追加する前からエラーは出ていますので この部分は関係ないと思います(最初に投稿している通り、時間経過で戻る場合はエラーになりません)

01_J821_HMPG_89_PXKQMPMSJNBYR_3_659b1d6e6c

01_J821_J0_NMGTXH_71_F9_TQ_8_YQN_2_D_ec20f8924f

試しに、シーン連携のサンプルにボタンを追加して ボタンを押してマップに戻るようにした所、やはり同じようにエラーが出ました

01_J821_SYTM_8_RRY_3533_WSM_9_NSQ_3_f6e5fa35ab

ボタンがクリックされた時の処理はConnectionUniteTestファイルに追加しました

01_J82261_XQFJ_3_RR_6_WY_0_AYQZHRS_45277cdb8d

この状態でUnityシーンからマップシーンへ戻るとイベントの一時中断は問題なく実行されるのに、メッセージの表示を実行するとエラーが出ます

どうか、よろしくお願いします


作成日:
更新日:

詳細な状況のご報告をいただきありがとうございます。

新規追加したシーンのEventSystemを選択してInspectorをご確認いただけますでしょうか。 添付の画像のようにエラー表示がされている場合に、ご連絡いただいた実装でエラーが出ることを確認致しました。 エラーの解消には「Replace with InputSystemUIInputModule」を押してModuleを更新し、シーンを保存してください。EventSystemはUniytのUIのRaycastイベント等を管理するコンポーネントで、シーンにUI要素(UnityEngine.UIのコンポーネント)が追加された際に自動作成されます。 Unity内の旧InputSystemの処理順の整合性に問題があるためと思われますので、現在は新InputSystemを使用することが推奨されています。 (エラーがある状態でも、フラグをセットするなどでUpdate内でシーンを切り替えた場合は正常に戻ることができました)

こちらの問題が確認できないようでしたら、引き続き調査をさせていただきますので、恐縮ですが続報をいただけましたら幸いです。 よろしくお願い致します。

01_J827_VF_6_YP_7_AMH_39_A5_MBCEFKW_a748a2b88b

作成日:

教えていただいたとおりにモジュールの更新をしたらエラーが出なくなりました ご対応ありがとうございます!