こんばんは、ちきなるです。
今回は、一時停止などを作っていたのですが・・・。
Time.timeScale= 0;
これで一時停止すると、概ね止まるのですが、一部が止まりませんでした。
なんで???
と、色々調べていたところ・・・。
Updateで処理していたのを、FixedUpdateにしたら、止まりました。
動かないだけなので、動画は無し!!
そうすると、他にもダメな部分があるかも?
と、調べたところ・・・。
ちょっと、わかりにくいのですが、一時停止を押しても、降り下ろしをやめませんでした。
こうすると、一時停止でのすり抜けという、必殺技が出来てしまうので、まずいのです。
で、調べたところ。
IEnumeratorで、降り下ろしをしていたのですが・・・。
yield return null;
で、処理を返すと、停止しないみたいです。
代わりに、
yield return new WaitForSeconds(0.01f);
で処理を返すと、停止しました。
まとめると・・・。
Updateは、
timeScaleが0でも処理を行います。
FixedUpdateは、
timeScaleが0だと処理を停止します。
IEnumeratorで、
yield return new WaitForSeconds(0.01f);
だと、timeScaleが0だと処理が停止します。(時間が0なので、処理が戻ってこない)
yield return null;
などで返すと、timescaleが0でも処理が進みます。(時間で待っていないので、進みます。)
てな感じでした。
コメント