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);
あとがき
これでなんとか動いています。ふぅー。アップグレードするとこれがあるから怖いんですよね。。