シーンを一つ、タイトルシーンを追加し、
その処理の中で初期化シーケンスを行うようにしました。
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()の処理を抜けないと実行されません。
で、初期化が完了すると、ホーム画面に遷移。