バッテラが如く

プログラミングしましょ!

【Unity】Unity2022にアップグレードしたらInstantiateAttachedAssetでうまくプレハブが生成できなくなった件について

Unity (2022.1.23f1)

はじめに

エディタスクリプトで使うInstantiateAttachedAssetですが、
Unity2021 から2022にアップグレードしたら、うまく動作しなかったのでメモ。

事象

InstantiateAttachedAssetプレハブ生成したゲームオブジェクトをクリックした時に下記エラーが発生します。

ArgumentNullException: Value cannot be null.
Parameter name: prefabInstance

そしてインスペクターを見ると何も表示されないという摩訶不思議な現象が起きます。

無です。 初めて見ました(笑)。

解決策

PrefabUtility.InstantiatePrefabというリンク状態でインスタンス化するメソッドに変更して、
PrefabUtility.UnpackPrefabInstanceでリンク状態を解除するという方法にするとInstantiateAttachedAssetと同じ挙動になりました。

GameObject go = PrefabUtility.InstantiatePrefab(prefab) as GameObject;
PrefabUtility.UnpackPrefabInstance(go, PrefabUnpackMode.OutermostRoot, InteractionMode.UserAction);

あとがき

これでなんとか動いています。ふぅー。アップグレードするとこれがあるから怖いんですよね。。