【3Dゲームエンジン】Unity質問スレッド28 [無断転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0050名前は開発中のものです。
2017/01/13(金) 09:12:19.71ID:2cQ+7wxAUpdateで書こうがコルーチン使おうが関係ないぞ?
GC云々と今回の問題は無関係なので、以降コルーチンは使わない前程で話す
Time.deltaTimeは60fpsで0.016前後。
Time.deltaTime刻みでしか推移しない値の絶対値が1.192093E-07より小さくなる確率を考えればあり得ないのは一目でわかるだろ
簡単に数値入れて説明するために、あるフレームのUpdate()が呼び出された時点の値を以下の様に仮定する。
timer=3.042f;
Time.deltaTime=0.016f;
この後timerからTime.deltaTimeが加算され、timerは3.508fとなる。
Mathf.Abs(3.05f-timer)は0.08となり、1.192093E-07より大きいので処理されないままtimerは3.05を跨ぎ越す。
以降Mathf.Abs(3.05f-timer)は増大して行くので永遠に処理されない。
無駄だが敢えてどうしてもMathf.Abs()を使いたいなら判定式は以下のような感じになるだろう
Mathf.Abs(3.5f-timer)<Time.deltaTime/2
■ このスレッドは過去ログ倉庫に格納されています