2016-08-16 4 views
-1

Google Cardboard Gameで作業しています。私は5~10スプライト、それに15~30個のブッシュ(草のような単一の茂み)、15個の木(<の頂点を持つ低ポリ)、カメラ(GVR Sdkによって提供される)を持つ地形を持っています。編集者のFPSは良いですが、デバイス(Google Cardboard)ではなく、FPSを上げる方法は?

エディタではフレームレートが良好です。しかし、私がGalaxy S6でテストすると、FPSは10-20と低くなります(私はFramerateをテキストで取得するスクリプトを付けました)。 最適化のヒント?ここ

はUnityのエディタで統計の詳細図である。

CPU:メイン6.0msは

FPS:160(平均)

バッチ:117の

トリス:6.1k

Verts:3.3k

+0

アンドロイド携帯から再生中のゲームのプロファイルを作成するには、[このページ](https://docs.unity3d.com/Manual/Profiler.html)のAndroidセクションを確認してください。 N.B:Profilerを使用するにはProバージョンのUnityが必要です。 –

答えて

1

お使いのデバイスが過熱していないことを確認してください、明らかかもしれませんが、いつあなたの顔にあるのかを常に知ることはできません(S6もあります)。また

、必ずエネルギーセーバーモードになっていない作り、ダム聞こえるが、私はすでにそれのために落ちた;)

スマートフォンでゲームのパフォーマンスを台無しにすることができ、物事の膨大な量の中で、次のとおりです。

  • 単に「あなたはドンいることを確認していない
  • ん、静的オブジェクトを移動しないでください
  • )あなたがアップデート(特にインスタンス化()であまりにも多くの仕事をやってスクリプトを持っていない/(デストロイていることを確認します高解像度のテクスチャを使用する(私の小さな経験では> 512x51 2は、彼らが二乗され、サイドノートとして2

の力で解像度を持っている、のgetComponentsが問題になる可能性があること、である、代替はすでに(ちょうどスタートでGetComponentを使い、@Andrewにより投稿されました)/ Awake()メソッドを呼び出し、後で使用するためにそれらを保存します。

+0

Unity Profilerであなたのゲームをプロファイルしようとしてください – AminSojoudi

+0

あなたは本当に助けてくれました.... PlzはInstanciateと破壊について少し説明します..私のゲームは本当にそれらを必要とします。私は何をすべきか? –

+0

更新機能ではなく、5秒間のCoルーチンでインスタンス化を使用しました。そして私は5〜10秒後に発生する可能性のあるクリックの破壊機能を使用しました。それはパフォーマンスの問題ですか?もし私は何をすべきですか? –

1

私はあなたが多くの時間を使ったと信じています実行時には "GameObject.Find()"と "gameobject.GetComponent()"が呼び出されます。 これは、単一開発者の最も一般的な問題です。

実行時にそれらを使用しないでください。の内部のみが起床または開始メソッドです。

awakeまたはstartメソッドの中に必要なすべてのGetComponentを作成し、結果をいくつかのグローバル変数に割り当てる必要があります。 After - 実行時にこの変数を使用します。

これは、モバイルデバイスのゲーム速度を大幅に向上させます。

+0

GetComponent <>にはどのような方法を使用できますか? –

+0

私は、コード内に膨大な数のGetComponent <>メソッドがないことを確認しました。しかし、Google VR SDKにはそれらの数があります。どのようにそれらを取り除く(任意の選択肢がありますか)。 –

+0

awakeまたはstartメソッドで必要なGetComponent <>をすべて作成し、結果を一部のグローバル変数に割り当てる必要があります。 After - 実行時にこの変数を使用します。 – Andrew

関連する問題