Unity によるプレハブの操作
Prefab は、開発者がゲームオブジェクトをコンポーネントやその他のデータとともに構成可能なテンプレートに保存できるようにする特別なアセットで、後でシーンや他のプロジェクト間で再利用したり、スクリプトを介してインスタンス化したりすることができ、再構成する必要はありません。
プレハブが役立つケース:
- 環境資産 (木、茂み、岩など)
- NPC (ノンプレイヤーキャラクター)
- 発射物
- プレーヤーのインスタンス
- ゲーム内で再利用する必要があるオブジェクト
使用例
モデルをシーンに直接ドラッグ アンド ドロップすると、多くの場合、次のような問題が発生します。
- テクスチャがありません
- スケールが間違っています
- 間違った回転
上記の問題は、シーン内で簡単に修正できます (正しいマテリアルの割り当て、スケール/回転の変更など)。
ただし、モデルを繰り返し使用したり、さまざまなシーンで使用したりする場合は、上記の手順を繰り返すのはすぐに面倒な作業になるため、代わりにモデルをプレハブに保存できます。
プレハブの作成方法
- Unity にプレハブを作成するには、オブジェクトをシーン ビューからプロジェクト ビューにドラッグ アンド ドロップするだけです。
- プレハブが作成されたら、それを任意のシーンにドロップして、正確なコピーを作成できます。
プレハブの編集
既存のプレハブの編集は、プレハブ エディターで変更する方法と、シーンで変更する方法の 2 つの方法で行われます。
プレハブエディターでの変更
- プロジェクト ビューでプレハブを選択し、インスペクター ビューで をクリックします。 "Open Prefab"
- プレハブがエディターで開かれ、変更できるようになります。
- 変更が完了したら、階層ビューの戻る矢印をクリックして編集を終了し、変更を保存します。
シーン内での変更
- プレハブをシーン ビューにドロップし、そこで編集します。
- 私の場合は、階層に別のオブジェクトを追加しました (アイコンの近くの (+) 記号に注目してください)
- シーン内のプレハブを変更する場合、変更は自動的に保存されません。代わりに、プレハブのルート オブジェクトを手動で選択し、インスペクター ビューで "Overrides" をクリックしてから "Apply All" をクリックして変更を保存するか、*h25 をクリックする必要があります。 * 変更を元に戻します。
- シーン内でプレハブを直接編集する場合、一部のアクションはサポートされません。たとえば、階層を再構築する必要がある場合、メッセージ "Cannot restructure Prefab instance" と、"Open Prefab" または "Cancel" のいずれかのオプションが表示されます。
プレハブ インスタンスを再構築するには、'Open Prefab' をクリックするか、階層ビューでプレハブを右クリックして、プレハブ -> 解凍 またはプレハブ -> 完全に解凍 をクリックします。
プレハブを解凍すると、メイン プレハブとの関連付けが削除され、シーン内で完全に編集できるようになります。
解凍したプレハブを元のプレハブに保存するには、元のプレハブが存在するフォルダーを選択し、変更したオブジェクトを階層ビューからそのプレハブにドラッグ アンド ドロップします。
変更が大きすぎる場合は、確認メッセージが表示されることがあります。
正しいプレハブを変更していることを必ず再確認してから、"Replace Anyway" をクリックしてアクションを終了するか、「置換しない」をクリックしてアクションをキャンセルしてください。
新しいプレハブが保存され、使用できるようになりました。