UnityのPlayモード中におこなった変更は、停止すると失われてしまいます。
この記事では、その問題を解決するため、コンポーネントの値をコピー&ペーストして、Playモード時の調整を編集モードに引き継ぐ具体的な手順を解説します。
おさらい:なぜPlayモードの変更は保存されないのか?
たとえば、編集モード時、Positon,Rotation,Scaleのパラメータは、以下の値になっています。

Playモードの再生(▶)をクリック。

Positon,Rotation,Scaleのパラメータを以下の値にしました。

しかし、再生(▶)を停止(■)し、編集モードに戻ると、パラメータの値は元に戻ってしまいます。

なぜなら、Playモードはゲームの動作をテストするための一時的な実行環境だからです。
意図しない変更から元のシーン設定を保護し、毎回同じ初期状態でテストを再現できるようにするためです。
というわけで、Playモード中に変更したパラメータを編集モードに戻った時に適用する方法を解説します。

①:Transformの値(位置・回転・大きさ)を保存する
まずは、Transformコンポーネントのパラメータを保存する方法です。
Playモード中に、Positon,Rotation,Scaleのパラメータを以下の画像のように変更しました。

次に、Playモードのまま、Transformコンポーネントの右上にあるケバブメニュー(︙)をクリックし、プルダウンメニューのCopyにポインターを合わせます。
すると、コピーできる項目が出てきます。
今回は、Positon,Rotation,Scaleの3つをコピーしたいので、World Transformを選びます。(ComponentでもOKです。)

再生(▶)を停止(■)し、編集モードに戻ります。
Positon,Rotation,Scaleの3つをコピーしたいので、World Transformを選びます。(コピーでComponentを選んだ場合はComponent Valuesを選ぶ)

すると、Playモード中に変更したパラメータがペーストされました。

②:Rigidbodyや自作スクリプトの値を保存する
Rigidbodyの質量や、自作スクリプトで設定したキャラクターのスピードなど、Transform以外のコンポーネントも全く同じ手順で値を保存できます。
今回は、自作のスクリプトのパラメータをPlayモード中に調整します。

再生(▶)にし、今回はHealthのパラメータを5、Is Aliveのチェックを外しました。

再生(▶)のまま、右上にあるケバブメニュー(︙)をクリックし、プルダウンメニューからCopy Componentをクリックします。

再生(▶)を停止(■)し、編集モードに戻ります。
ケバブメニュー(︙)をクリックし、プルダウンメニューのPast Component Valuesをクリックします。

すると、Playモード中に変更したパラメータがペーストされました。

このように、一度やり方を覚えてしまえば、どんなコンポーネントにも応用が効きます。
大事な注意点:Copy Componentで一度に扱えるのは1つだけ
これらの方法で注意すべきなのは、Copy Componentという操作でクリップボードに保持できるのは、最後にコピーした1つのコンポーネントだけという点です。
例えば、TransformをCopy Componentした直後に、RigidbodyをCopy Componentすると、クリップボードの中身はRigidbodyの値で上書きされてしまいます。
World Transformのコピペも1つだけです。
合わせ技の紹介
ただし、TransformのCopy>World Transformは、Copy Componentとは別の場所に値を保存します。
そのため、
- Transformの値を Copy>World Transform でコピー
- 続けてRigidbodyを Copy>Component でコピー
という手順を踏めば、両方の値を保持したままPlayモードを終了し、それぞれペーストすることが可能です。
World TransformとComponent(Values)の違いは?
Component(Values)をコピペするときは、オブジェクトの親子関係を無視して、インスペクターの数字だけをコピーしたいときに使います。
World Transformをコピペするときは、オブジェクトの親子関係があってもなくても、オブジェクトが見えているその場所(ワールド座標の値をコピー)に、別のオブジェクトをピッタリ合わせたいときに使います。
今回のように自身のオブジェクトのTransformのパラメータをWorld Transformでコピペする場合は、「今持っている値をもう一度上書きする」だけなので、見た目もインスペクターの数字も変化しません。
こどじょんPlayモード中のInspectorのパラメータを保持するアセットなどもあります。
まとめ
この「Playモード中のパラメータをコピー&ペーストする」テクニックは、Unity開発の基本でありながら、非常に強力な時短技です。
特に、UIの配置やキャラクターのパラメータ調整など、トライ&エラーが欠かせない作業で真価を発揮します。
ぜひこの方法をマスターして、快適なUnity開発ライフを送ってください!

