float endTime = Time.time + duration; while(Time.time<endTime);というコードをよく見るので調べてみた.
もちろん私はこのようなコードは書かない.
public class Scene0 : MonoBehaviour { float prevTime_; float startTime_; string log_ = string.Empty; void Start() { prevTime_ = startTime_ = Time.time; } void Update() { if(Time.time<=prevTime_){ float duration = prevTime_-startTime_; string str = string.Format("duration: {0} ({1} -> {2}) -{3}", duration, startTime_, prevTime_, System.DateTime.Now.ToShortTimeString()); Debug.Log(str); log_ += string.Format("{0}\n", str); System.IO.File.WriteAllText(Application.dataPath+"/../log.txt", log_); startTime_ = Time.time; } prevTime_ = Time.time; } }Run In BackgroundをOnにしてビルドして, 放置するといいだろう.
だいたい9000 - 9600 seconds でリセットされるようです.
スリープ状態からの復帰など, 何かのタイミングでもリセットされるようです.
floatは, 4時間程度で 1 msecの精度を超えるので, リセットの周期はこの程度だと思います.
私は10000 seconds程度は起こりうる値だと思っています.
0 件のコメント:
コメントを投稿