あー,どうもこんにちは.
今回は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/
コメント