Unity iOS 用の非常にシンプルな縦スクロール ゲームに取り組んでいます。私のゲームは一貫性のないジッタリングを経験しています。私は運がない解決策を探してウェブを広範囲に検索しました。Unity バージョン 5.3.4 f1 を使用しています。
ゲーム
- キャラクターが倒れています。Unityのキャラクターコントローラーを使用してキャラクターを動かしています
Update()
(Time.deltaTime
は乗算されています)。 - カメラがキャラクターをフォローしています
LateUpdate()
(Vector3.Lerp()
フォローするために使用)。 - キャラクターが下に移動しているため、障害物が画面の上に移動しているように見えます。
- シーンには 1 つのディレクショナル ライトがあり、リアルタイム シャドウ用に設定されています。影の品質は High と Hard の影です。
- シーンに剛体はありません。また、プロファイラーに大きなスパイクはありません。
- ジオメトリは非常にシンプルで、ドローコール/セット パス コールはほとんどありません (平均 7 セット パス コール)。
- 一定の60 fpsがあります。
- iOS で実行しているため、vSync はデフォルトでオンになっており、無効にすることはできません。
問題
- 背景の要素/障害物 (木、岩など) が明確な理由もなく揺れ始めます。動作に一貫性がなく、ジッターする場合とそうでない場合があります。
- ジッターが発生しない場合でも、ユーザーがタッチで入力を行うと、小さなスタッターが発生します。
私たちが試したこと
Update()
、LateUpdate()
、FixedUpdate()
、 、 Lerpのすべての組み合わせを試しTime.deltaTime
Time.smoothDeltaTime
、シーンをいくつかの立方体に縮小し、すべてのコライダーとトリガーを削除しました。- Link1、Link2、Link3 、およびその他の無数のスレッドについては、すでに調査済みです。
- 最初、ゲームはデフォルトの 30 fps で実行されていました。しかし、いくつかの調査の結果、問題は「フレーム レート」と「画面のリフレッシュ レート」の違いによるものであることがわかりました。(この問題を理解するには、次のLINKを参照してください)。iOS デバイスのリフレッシュ レートは 60 Hz であるため、ターゲット フレーム レートを 60 に設定し、ゲームは一定の 60 fps を維持します。
- ターゲット フレーム レートを 60 に設定した後、ジッターは改善されましたが、現在は一貫性がありません。
私はすべてのアイデアがありません。どんな助けや指針も高く評価されます。
前もって感謝します。