質問: Unity web のゲームを制作しています。シーンを移動して、部屋移動をしたいです。web版のUnityではシーン移動はできますか? エラーメッセージはこれです。 ArgumentException: INTERNAL_CALL_GetActiveScene can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function. UnityEngine.SceneManagement.SceneManager.GetActiveScene () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/SceneManagerBindings.gen.cs:33) Seni..ctor () 遷移はSceneManager.LoadScene("部屋の名前");で行っています。 部屋(シーン)は6つほどあります。 webで動かすと遷移のところで止まってしまい、一切動かないです。 ただ重いだけなのかわからないので、webでシーン移動できるかだけでも教えてほしいです。お願いします。
回答: メインスレッド以外でUnityのAPIが呼ばれているというエラーが出ていますね。 Unity関連の初期化が終わる前にUnityのAPIの関数などが呼ばれている可能性があります。 以下のコードのように、メンバ変数の初期化などで`GetActiveScene()`を呼んではいませんでしょうか。 ``` using UnityEngine; using UnityEngine.SceneManagement; public class LoadScene : MonoBehaviour { private Scene m_scene = SceneManager.GetActiveScene(); } // class LoadScene ``` UnityのAPIを呼ぶのでしたら、以下のように`Awake()`や`Update()`などで呼んでみてください。 ``` public class LoadScene : MonoBehaviour { void Awake() { Scene m_scene = SceneManager.GetActiveScene(); } void Update() { Scene m_scene = SceneManager.GetActiveScene(); } } // class LoadScene ``` エラーが出ているスクリプトのコードを質問情報に追加していただければ、もっと適切な回答が出来るかもしれません。