[メモ]GetRootGameObjects() の結果が返ってこない

巨大なシーンをAssetBundleから開いて、シーン内に配置してあるオブジェクトを GetRootGameObjects() で取得しようと思ったら、結果の配列が0個で取得できませんでした。

なので、ウエイトを入れて待ってみたところ、取得できるようになりました。
大きなシーンを開く場合は、中のオブジェクトが展開されるまで時間がかかるのでしょうかね?

public async UniTask LoadModelScene()
{
    await SceneManager.LoadSceneAsync("hoge", LoadSceneMode.Additive);
    var scene = SceneManager.GetSceneByName("hoge");
 
    var cnt = 0;
    while (true)
    {
        var obj = scene.GetRootGameObjects();
 
        if(obj.Length > 0) break;
        await UniTask.DelayFrame(60);
        cnt++;
        Debug.Log("Opening Scene:{cnt}");
 
        if(cnt > 20) break;
    }
}
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク