(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

エディタ実行中にTime.timeScaleを任意の値に変更する【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2017.3.1f1


はじめに

UnityではTime.timeScaleを操作する事によって時間の進み具合を変更出来ます。



このTime.timeScaleを好きな時に好きな値に変更したい!

好きなタイミングでスローモーションや早送りしたい!みたいな時に使える

TimeScaleControlWindowというモノを作ったので、今回はこれをご紹介!


f:id:kan_kikuchi:20180328201056g:plain


なお、エディタ上でしか使えないのであしからず。


TimeScaleControlWindow

ではさっそく、Time.timeScaleを変更する用のウィンドウ、TimeScaleControlWindowのコードです。



これをEditorフォルダに入れると


f:id:kan_kikuchi:20180328202043j:plain


Widow -> Time Scale Control Windowから開けるようになります。


f:id:kan_kikuchi:20180328202056j:plain


使い方は簡単、スライダーを動かすか、スライダー横の欄に直接値を入力するだけ。


f:id:kan_kikuchi:20180328201056g:plain


また、MinとMaxでスライダーの最小値と最大値を設定でき、

リセットボタンを押すと、初期状態に戻せます。


なお、最小値と最大値はEditorUserSettings.SetConfigValue (Library/EditorUserSettings.asset)

に保存しているので、ウィンドウやプロジェクトを閉じても保持されます。





おわりに

以上、ゲーム中にTime.timeScaleを変更したい場合は地味に役立つエディタ拡張の紹介でした!


余談ですが、これと同じ感じで

ゲーム中の色々な値を変更出来る用にしておくと、かなり捗るのでオススメです。


f:id:kan_kikuchi:20180328203347j:plain