ステージ1とかステージ2とか、ステージだけ読み込ませるパターンあると思いますが、今後のアセット管理の主流はAddressable Asset systemという事でAddressable Asset systemで書くことにしました。
追加でステージ読み込む場合って、追加でシーンを読み込むパターンとプレハブで読み込むパターンの2通りあると思いますが、個人的には追加シーンロードがいいんじゃないかなと思いこちらを採用しました。ステージって現在のステージをアンロードして、次のステージをロードする形かなと思いますが、ロード・アンロードの管理はシーンの方がやりやすいかなと思った次第です。
ひとまず以下のような形で書きました。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
const string StageAssetPath = "Assets/Stage/Stage_{0}.unity"; private SceneInstance _level; private int currentLevel; private async Task LoadNext() { Addressables.UnloadSceneAsync(_level); currentLevel++; string key = string.Format(StageAssetPath, currentLevel); SceneInstance level = await Addressables.LoadSceneAsync(key, LoadSceneMode.Additive).Task; _level = level; } |