MENU

【Unity】Playモード中の値を保存して編集モードに引き継ぐ方法

Unityの記事用アイキャッチ

UnityのPlayモード中におこなった変更は、停止すると失われてしまいます。

この記事では、その問題を解決するため、コンポーネントの値をコピー&ペーストして、Playモード時の調整を編集モードに引き継ぐ具体的な手順を解説します。

この記事はUnity 6 / Windows 11環境を元に執筆しています。

もくじ

おさらい:なぜ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とは別の場所に値を保存します。

そのため、

  1. Transformの値を Copy>World Transform でコピー
  2. 続けてRigidbodyを Copy>Component でコピー

という手順を踏めば、両方の値を保持したままPlayモードを終了し、それぞれペーストすることが可能です。

World TransformとComponent(Values)の違いは?

Component(Values)をコピペするときは、オブジェクトの親子関係を無視して、インスペクターの数字だけをコピーしたいときに使います。

World Transformをコピペするときは、オブジェクトの親子関係があってもなくても、オブジェクトが見えているその場所(ワールド座標の値をコピー)に、別のオブジェクトをピッタリ合わせたいときに使います。

今回のように自身のオブジェクトのTransformのパラメータをWorld Transformでコピペする場合は、「今持っている値をもう一度上書きする」だけなので、見た目もインスペクターの数字も変化しません。

こどじょん

Playモード中のInspectorのパラメータを保持するアセットなどもあります。

まとめ

この「Playモード中のパラメータをコピー&ペーストする」テクニックは、Unity開発の基本でありながら、非常に強力な時短技です。

特に、UIの配置やキャラクターのパラメータ調整など、トライ&エラーが欠かせない作業で真価を発揮します。

ぜひこの方法をマスターして、快適なUnity開発ライフを送ってください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
もくじ