【Unity】初期化シーケンスの実装。

シーンを一つ、タイトルシーンを追加し、

その処理の中で初期化シーケンスを行うようにしました。

    void Update()
    {
        if(!gameManager.Initialized)
        {
            switch(sequence)
            {
                case Sequence.Start:
                    sequenceStart();
                    break;
                case Sequence.MasterInitialize:
                    masterInitialize();
                    break;
                case Sequence.UserdataInitialize:
                    userInitialize();
                    break;
                case Sequence.Complete:
                    FadeManager.Instance.LoadScene("HomeScene", 0.3f);
                    sequence = Sequence.End;
                    break;
                case Sequence.End:
                    gameManager.Initialized = true;
                    DontDestroyOnLoad(gameManager);
                    break;
            }
        }
    }

Updateのループの中で初期化処理を行い、動作が完了してから次の動作を行う、という感じです。

なぜこうする必要があるかというと、

        var request1 = UnityWebRequest.Get(Application.streamingAssetsPath + "/item.csv");
        request1.SendWebRequest().completed += (AsyncOperation operation) => {
            Items = ItemLoad(request1.downloadHandler.text);
            endflg[0] = true;
        };

UnityWebRequest.Get()の処理が非同期で行われるため、Update()の処理を抜けないと実行されません。

で、初期化が完了すると、ホーム画面に遷移。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください