概要
たびたび話題に上がっているこの問題。
Change base of prefab variant.(Forum)
Unityは2022.2で神アプデが入りました。
Unity 2022.2 のプレハブ関連の新機能
でも、公式のドキュメントはわかりにくく、PrefabVariantのParentをインスペクターから差し替えようとすると一見グレーアウトされててParentを変更するのは無理に見えます。でもできます。
やり方
HogeA → HogeA Variant B
を
HogeA → HogeA Variant X → HogeA Variant B
に差し替えるとします。
HogeA Variant BはHogeにRigidBodyコンポーネントを追加したものとします。
以下の手順で差し替えが可能です。
②親を差し替えたいHogeA Variant Bをシーンに配置します。
④継承元をHogeA Variant Xに差し替えます。このとき「Replace and Keep Overrides」を選択します。これにより、アタッチされているRigidBodyコンポーネントは残ります。
④(補足)
もしくは、Hierarchy上でゲームオブジェクトHogeA Variant Bを右クリックし、Prefab→ReconnectPrefabでもいけます。UnpackしてPrefabでなくなった対象にも使える手法であるため、こちらのほうが確実かもしれません。
⑤シーンビューのHogeA Variant XをProjectViewのHogeA Variant Bにドラッグアンドドロップで上書きします。警告が出ますがReplace Anyway→Prefab Variantを選びます。