【Unity】複数個所から安全にTime.scaleを操作する
あかんパターン
たとえば一時停止処理などでTime.scale
に0f
を入れて時間を止め、なんやかんやした後に1f
を入れて戻す処理を書くとする。
この時、なんやかんやしてる内部でTime.scale
に1f
を入れてしまうと、勝手に時間が動き出してしまいマズイ。
やること
いろんなところでTime.scale
を操作すると何かと問題が起こりやすい。そこで管理クラスを作る。
コード
使い方
Time.scale = 0f; // なんやかんや Time.scale = 1f;
としているところを
var timeScaler = new TimeScaler(); timeScaler.SetScale(0f); // なんやかんや timeScaler.SetScale(1f);
とする。
変更した本人が1f
に戻さないと永遠に戻らないので注意。それが流儀。