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

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

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

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

577閲覧

フレームレートを30にしたい

unity2018

総合スコア34

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2018/10/20 14:13

編集2018/10/20 14:27

処理負荷軽減のためにグラフィック処理を1フレーム飛ばして、その他の情報は更新させたいと考えています
それを実現する方法が

Application.targetFrameRate = 30;

上記のコードで実現するようですが
1/2倍速になっただけで、ゆっくりと動作するだけになりました

念のために
Project Settings → Quality画面にある
VSync Count を Don't Sync
にしてみましたが、変わらず

他に設定すべき場所がありますか?
よろしくお願いします

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

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

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

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

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

guest

回答1

0

ベストアンサー

「Application.targetFrameRate」は描画を1フレーム飛ばすんじゃなくて
「1秒間に何回描画するか」を定めている値です。
VSync Countもモニタのリフレッシュレートに同期するか否かを決めているだけです。

グラフィック処理のスキップは原則的には出来ません。

やるとしたら、Application.targetFrameRate = 30;などと描画のフレームレートを下げた上で、
その他の処理をFixedUpdateで行う方法があります。
(FixedUpdateは物理演算の頻度に則るので、例えば60FPSと決めたら常に60FPSで呼び出されます。詳しくは以下)
UnityのUpdateとFixedUpdate、LateUpdateメソッドについて | Unityを使った3Dゲームの作り方(かめくめ)

投稿2018/10/21 11:46

sakura_hana

総合スコア11427

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

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

unity2018

2018/10/22 10:11

回答ありがとうございます 一部だけまだうまく行かないものがあります うまく動作するコード void FixedUpdate() { rig.AddForce(inputVector, ForceMode.Impulse); } うまくいかないコード void OnTriggerEnter(Collider col) {     rig.AddForce(inputVector, ForceMode.Impulse); } 1番目は常にFixedUpdateされるので問題ないですが 問題は2番目の1フレームしか呼ばれないコードです 打開策を探しています
sakura_hana

2018/10/22 10:50

OnTriggerEnterは衝突開始の瞬間だけ呼ばれるのでフレームレートを問わず1フレーム(正確には「物理演算1回分」)しか呼ばれません。 衝突している間ずっと呼び続けたいならOnTriggerStayです。
unity2018

2018/10/22 11:09

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問