(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

Hierarchy上のオブジェクトを任意のPrefabと差し替える【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加



この記事でのバージョン
Unity 2021.1.23f1


はじめに

UnityはAlt(option)キーを押しながらHierarchy上にPrefabをドラック&ドロップすると

オブジェクトを差し替える事が出来ますが、

f:id:kan_kikuchi:20220208073209g:plain


位置、角度、スケールは配置されてる物の値ではなくPrefabの値が使われるので、

同じ場所に配置しなおすみたいな事は出来ず、Undo(やり直し)も効きません。

f:id:kan_kikuchi:20220208073259g:plain


という事で今回は位置、角度、スケール

Hierarchy上のオブジェクトを任意のPrefabと差し替えるエディタ拡張を作ったのでその紹介です!

f:id:kan_kikuchi:20220208074230g:plain


なお、記事中では以下のアセットを使っています。

Low Poly Ultimate Pack | 3D Props | Unity Asset Store



ReplacingPrefabWindow

さっそくですがHierarchy上のオブジェクトを任意のPrefabと差し替えるエディタ拡張

ReplacingPrefabWindowのコードは以下の通りです。



上記のスクリプトをEditorフォルダ内に作成すると上部メニューTools/Open/ReplacingPrefabWindow

からウィンドウが開けるようになります。

f:id:kan_kikuchi:20220208074101j:plain


そのウィンドウに差し替えたい先のPrefabを設定し、

f:id:kan_kikuchi:20220208074127p:plain


Hierarchy上の差し替え元のオブジェクトを選択

f:id:kan_kikuchi:20220208074202p:plain


あとはPosition等、差し替え元で固定したい項目を選択し、差し替え実行ボタンを押せば

f:id:kan_kikuchi:20220208074211p:plain


簡単に差し替える事が出来ます。(もちろんUndoも可能)

f:id:kan_kikuchi:20220208074230g:plain