広告あり

ブログ開拓記Part278 “一時停止が止まらない”

日記

こんばんは、ちきなるです。

 

今回は、一時停止などを作っていたのですが・・・。

 

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でも処理が進みます。(時間で待っていないので、進みます。)

 


 

てな感じでした。

コメント