Rigidbody
主な問題はの操作だと思いますvelocity
。問題を解決するために、次のことを試してみます。
- コードを再設計して、
IncreaseBallVelocity
および の他のすべての操作がRigidbody
内で呼び出されるようにしますFixedUpdate
。への他の操作がないことを確認しTransform.position
ます。
AddForce
物理エンジンがすべての依存関係を計算する可能性が高くなるように、または同様の方法を使用して設定速度を直接置き換えてみてください。
- 物理計算に関連するアイテム (メイン プレイヤー キャラクターなど) が他にもある場合は、それらのコードも FixedUpdate で実行されるようにしてください。
私が遭遇したもう 1 つのポイントは、非常にスケーリングされたメッシュです。with スケール <= 0.01 または >= 100をGameObject
持つことは、物理計算に明らかに悪影響を及ぼします。docsとこの Unity フォーラムの専門家のエントリによると、Transform.scaleの値を避ける必要があります != 1
まだ幸せではありませんか?OK では、次のテストは高速度で開始されますが、加速はありません。この段階で、問題の原因が高速度自体にあるのか、加速にあるのかを知りたいと考えています。物理エンジンが故障し始める速度の値を知ることは興味深いでしょう - 比較できるようにそれらを投稿してください。
編集:
6.7 m/秒はそれほど多くないように聞こえるので、問題が発生する特別な理由または理由の組み合わせがあると思います。
- 最大許容タイムステップは十分に高いですか? テストの場合は 5 ~ 10x をお勧めし
Fixed Timestep
ます。これによりフレームレートが低下する可能性がありますが、後で修正できることに注意してください。
- エディター プレーヤーと Android でゲームを実行する際に違いはありますか?
- が原因でフレームレートが低下したことに気付きました
0.01
FixedTimestep
か? これは、物理エンジンに問題がある可能性があることを示しています。
Rigidbody
他の方法で移動または操作される静的コライダー (コライダーを持っているが を持たないオブジェクト) があるのでしょうか? これにより、PhysX 内で大量の再計算が発生します。
- レイヤーについて:すべての壁は同じレイヤーにあります。関連するレイヤーは、衝突検出マトリックスで適切に構成されていますか?
- ノーバウンス効果は常に同じ壁で発生しますか? その場合、最初の壁をコピーして 2 番目の壁の代わりに配置し、この特定の壁に問題があるかどうかを確認していただけますか。
- それほどの努力がなければ、壁としていくつかの標準立方体を設定しようとしますが、それが原因で
transform.scale
はないことを確認します (私はこれで本当に悪い経験をしました)。
- 重力を操作します
TimeManager.timeScale
か、それともスクリプト内から操作しますか?
- ところで:あなたは重力を使っていますか?(ただ問題ないはずです