これは正規表現でマッチする、構造が同じ場所にあるコンポーネントを一括でコピーするUnityエディタ拡張です。
Window -> Package Manager を開く+ から Add package from git URL をクリックhttps://github.com/Taremin/CopyComponentsByRegex.git をコピー&ペーストして Add をクリックこのリポジトリのzipファイルをダウンロードして、解凍したものをアセット内にコピーします。
ここで注意するのは Editor フォルダも そのまま コピーすることです。
これはUnityの仕様で「Editorフォルダの中にあるスクリプトはエディターでのみ有効で、ゲーム実行時には無視される」というのがあるからです。
(参考: 特殊なフォルダー名 - Unity マニュアル)
Editor フォルダ内の *.cs ファイルのみをアセットにいれてしまうと、ゲーム実行時にも実行されてしまいエラーが発生します。
Copy Components By Regex をクリックCopy Components By Regex ウィンドウが開くので 正規表現 にコピーしたいコンポーネントとマッチする正規表現を書く
(例: Dynamic Bone と Dynamic Bone Collider をコピーしたいなら Dynamic など)Copy Components By Regex ウィンドウの Copy ボタンを押すCopy Components By Regex ウィンドウの Paste ボタンを押すコピーするオブジェクトとコンポーネント内で完結しているオブジェクト参照(Dynamic Bone の root など)は自動的にコピー先のオブジェクトやコンポーネントに差し替えます。
逆に言えばコピーする範囲外のコンポーネントへの参照はそのままになっているため、注意してください。
構造の同一性はオブジェクトの名前で判断しているため、同じ親を持つ同名の子オブジェクトがある場合などで動作がおかしくなる可能性があります。 また、完全に構造が同一でなくても子の名前が同じならできるだけ辿ろうとするため、ボーンの増加などの場合もそのままコピーできます。
Cloth コンポーネントのコピーは同じモデル同士で Cloth 部分の頂点数が同じならば、Constraints の単純なコピーが行われます。(高速)
頂点数が変わっていたり、大きく形状が変わっていた場合などは ClothコンポーネントのConstraintsを一番近い頂点からコピーする にチェックを入れて使用するとコピーできます。(少し遅い)
「一番近い頂点からコピーする」設定はコピー元とコピー先のそれぞれの頂点の座標を比較して行うのですが、Unity(5.6.3p1, 2017.4.15f1) の Cloth の追加時の頂点座標がおかしいため、あらかじめ Cloth をコピー先に追加しておいてください。
https://taremin.kibe.la/shared/entries/95c1d6cf-9fcd-4a57-8849-677529e50e77 により詳しい説明を書きましたので、もしよければそちらも参考にしてください。
CopyComponentsByRegex では以下のコードを改変して利用しています。
taremin.copy-components-by-regex
Undefined
0.0.3
2017.1 or later
No dependencies
No dependencies
No legacy packages
Undefined