質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2146閲覧

Unityで起動から8時間半程度後、Updateの呼び出し回数が増えてしまいます

mako.

総合スコア7

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2016/08/09 02:31

###前提・実現したいこと
安定したFPSで処理したいコードが有るのですが、
起動から8時間半程度後から突如としてUpdateの呼び出し回数が
増えてしまう現象が発生してしまっています。

###発生している問題・エラーメッセージ
下記のコード(少し簡略化していますが)で
起動後は60.260.4FPSで安定しているのですが、
8時間半後(30200
30300秒の間?)から60.2~73.8FPSと
かなりばらつきのある状態となってしまっています。

元々ゲーム中に組み込んでいたもので発生していた現象なのですが、
デバッグ用に新規で作ったプロジェクトでも
同じような現象が発生してしまいました。

なにか内部で浮動小数の有効桁数溢れなどが発生してまっているのでしょうか?
原因や対処方法など、ご存じの方がいましたらお教えいただけませんでしょうか?
よろしくお願いします。

###該当のソースコード

using UnityEngine; using UnityEngine.UI; public class DebugScript : MonoBehaviour { public Text text; float waitFiveSec = 0; int fps = 0; void Start () { Application.targetFrameRate = 60; } void Update () { if(waitFiveSec >= 5f) { text.text = "FPS : " + (fps / 5f).ToString(); fps = 0; waitFiveSec = 0; } else { fps++; waitFiveSec += Time.deltaTime; } } }

###補足情報(言語/FW/ツール等のバージョンなど)
Unity 5.3.5f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

元々UnityのUpdate()は固定周期実行を保証(想定)していないそうです。
固定周期で実行したい場合はUpdate()ではなくFixedUpdate()を使います。
FixedUpdate()が呼び出される間隔は Fixed Timestep で設定変更できるようです。

投稿2016/08/09 03:43

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mako.

2016/08/09 10:04

回答ありがとうございます。 なるほど固定周期での呼び出しは保証されていないのですね。 一度FixedUpdateに変更して問題が起きないか確認してみたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問