0

iOS向けのFPSゲームを開発しています。プレイヤー キャラクターは、標準アセット (モバイル) の一人称コントロールです。標準のキャラクターコントローラーが付属しています。

シーンには 7 人の敵がいます。各敵には、非運動学的 RigidBody があります。プレイヤーが近くにいるときに敵がプレイヤーに向かって移動する

シーンには 5500 の三角形 / 6000 の頂点があります。プレーヤーが動かない場合、iPhone 4 では 20 ~ 25 fps です。プレイヤーが動き始めると、fps が 7 ~ 10 に低下します。

また、AddForce を呼び出すのではなく、直接変形を変更して敵を動かします。

プロファイラーでは、プレイヤーが移動すると Physics.Simulate が約 60% ~ 70% の CPU を使用することがわかります。

これをどのように修正する必要がありますか?

Unity と 3D は初めてです。私の英語でごめんなさい。

4

1 に答える 1

4

Unity のドキュメントによると、iOS デバイスで物理エンジンを使用すると、浮動小数点演算に大きく依存するため、パフォーマンスが低下します。http://docs.unity3d.com/Documentation/Manual/iphone-basic.html

ドキュメントが示唆するように、パフォーマンスを向上させるには、メッシュ コライダーを避け、固定フレーム レートを低く設定し、Rigibody Interpolation を有効にします。

重い物理演算を使用するゲームを作成できますか? A: 物理演算は、iOS では多くの浮動小数点数処理が必要なため、コストが高くなる可能性があります。MeshCollider は可能な限り完全に避けるべきですが、本当に必要な場合は使用できます。パフォーマンスを改善するには、[編集] -> [時間] -> [固定デルタ時間] を使用して低い固定フレームレートを使用します。10 ~ 30 のフレームレートが推奨されます。Rigidbody 補間を有効にして、低い物理フレーム レートを使用しながらスムーズなモーションを実現します。振動のない完全に流動的なフレームレートを実現するには、iOS でのゲームの平均フレームレートに基づいて固定の deltaTime 値を選択するのが最善です。1:1 または半分のフレーム レートが推奨されます。たとえば、30 fps を取得する場合、固定フレーム レート (0.033 または 0.066) には 15 または 30 fps を使用する必要があります。

于 2013-04-08T14:28:02.830 に答える