【Unity/初心者向け】AddressableAssetsでprefabをInstantiateしたい!

あー,どうもこんにちは.
今回はUnityよくやるprefabをInstantiateするやつ!あれを備忘録として書き残そうと思います.

今まではResourcesフォルダを使っていたのですが,非推奨らしいので(詳しくはわかってない)…ここではAddressableAssetを使っていきたいと思います.
今ままで使っていたコードはこんな感じ.

Resources.LoadAsync("Prefabs/ExamplePrefab.prefab");
Code language: C# (cs)

packageのインストール

Window→Package Manager

Package(写真左上)を「Unity Registry」にして,検索ボックス(写真右上)で「Addressables」と検索

出てきた,パッケージの右下にimportだったかinstallだったかのボタンがあるので押してください.ちなみに「Remove」となっていたらインストールできているのでそのまま閉じてください.

これでインストールは完了です.

prefabのアドレスを取得

prefabをAssets下の好きなフォルダに設置.
僕は今回は「Assets>_MyFolder>Prefabs>Characters」に置きました.

さて,このプレハブを選択すると,インスペクターに情報が表示されますが,診てみると…下の写真のようなチェックボックスが生まれていると思います.
これをチェックすると,右にアドレスが出てきます.後でコピーをします.

スクリプトの作成

まぁ,なんでもいいのですが,スクリプトの必要な部分を書きます.

using System.Collections.Generic; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class select : MonoBehaviour { void Start() { Addressables.LoadAssetAsync<GameObject>("Assets/_MyFolder/Plefabs/Characters/kumanomi_addbone.prefab").Completed += op => { if (op.Status == AsyncOperationStatus.Succeeded) { Instantiate(op.Result); } }; } }
Code language: C# (cs)

んまぁ,こんな感じですかね.
10行目のアドレスは先ほどコピーしたやつを入れます.

どうですか?できましたか?

参考文献

  • https://light11.hatenadiary.com/entry/2019/12/30/222302
  • https://original-game.com/unity-how-to-use-addressables/

コメント

タイトルとURLをコピーしました