PDF 参考ツイート Unityについてのノウハウをまとめました。パフォーマンス改善とデータサイズ削減を中心として書いています。https://t.co/J0LGIoNDA1#Unity #UnityTips— 坂本龍 (@SakamotoRyuu) August 5, 2019
UnityでUIを作ると言えば、まずはUnityEngine.UIです。 中身のことを考える必要もなく、ドカドカとImageやTextを置けば 動くので大変有り難いわけですが、不意に猛烈に処理が遅くなることがあります。 本記事では、たまたま見つけた現象と、そこから疑問を持って UnityEngine.UIの処理速度についていろいろ調べてみたことを、 技術部平山が書いてみます。 お急ぎの方のために結論を箇条書きにしておきましょう。 Graphic.color、RectTransform.sizeDelta、Text.textをいじると遅い 動かすだけでは大して遅くないが、動かさないよりは遅い リッチテキストは遅い 気になりましたら以下をどうぞ。 なお、Unityのバージョンは2017.4.8f1です。2018では改善している、 ということも多々ありそうですが、そのへんはご容赦ください。 UI
はじめに はめまして、カヤックの技術基盤チームの Unity エンジニアのアファトです。この記事はカヤックUnityアドベントカレンダー2016の21日目の記事になります。 ゲーム開発には機能やゲームプレイを実装するたびにシーンやコードだんだんコンプレックスになって、ターゲットFPSまでパフォーマンスが出なくるというパターンは開発中にはよくありますが、リリースするまではターゲットデバイスのスペックに応じて、特に低スペックなデバイスでゲームが遊べないほどもっさりしてる可能性があります。そのためにパフォーマンスチューニングが必要です。なぜパフォーマンスが出ないか、どうやって改善できるか、軽く紹介します。 FPSについて Frame per secondsというい用語は1秒の中にフレームが何回か更新されるという意味です。一般的なゲームには 30FPS か 60FPS か その間でフレームが更新さ
最適化というか、改善する話です。 モバイル向けに作った時に妙に遅かった場合、この辺りの要因が絡んでいるケースが多い印象です。この辺りは作る際に確認しながら作ると、後々痛みが少なくて良いかなと思います。 目次 目次 プロファイラで確認する エディタ上で動かすプロファイラの注意点 メソッド毎の負荷について DrawMeshを抑える バッチングされない謎の理由 バッチングしやすくする為には フィルレートに気をつける よくあるフィルレートで死ぬパターン フィルレート対策 uGUIにおけるフィルレート対策 Unity 2Dにおけるフィルレート対策 解像度を下げる ゲーム画面は低解像度、UIは高解像度 バッチについて注意すべき事 フォントの扱いについて テクスチャ更新時のスパイク 2つの対策 UIを動かす(変形させる)コストについて 物理演算について その他… VSYNCについて Tweenとか Pi
パフォーマンスの確認と言えばInstrumentsが上がりますが、最近のXcodeはもっとシンプルにパフォーマンスをプロファイル出来るみたいです。 Xcodeでゲームを実行した状態で、真ん中付近のタブを押すと、CPUの使用率やメモリ消費量、それにフレーム単位のGPUとCPUの負荷等が判るようになっています。 コレを使えば、GPUの負荷が高ければGPU・CPUの負荷が高ければCPU、アプリが落ちるならメモリ等々、何がボトルネックになっているのか概ね把握する事ができます。 また、このFPSチェック時にAnalyzeボタンをクリックすると、どの描画時に一番時間がかかっているのかが判りやすく表示されます。詳細を確認すると、負荷の高い処理は何を描画している最中なのか等も分かり便利です。 ドローコールを一つ一つ確認し、どのタイミングで描画されているかを確認する事も簡単に可能です。 上手く使えば、負荷が
C#ではメモリ管理はガベージコレクション(GC)ですので、deleteする必要が無く気楽です。 が、GCはメモリ回収時に全動作を止める(所謂Stop the world)事が良く知られています。 デスクトップ環境向けのプログラムを書く分にはあまり気にしなくても良いところなのですが、スマートフォン向けのプログラムの場合、ちょっと問題です。 (実はサーバー環境でも問題なのですが) スマートフォンは性能が上がってきているとはいえ、デスクトップに比べるとまだまだ非力です。 ガベージコレクタがメモリを回収、つまり使われていない領域を開放する処理は案外重たいため、パフォーマンス上悪影響を与える事が多々あります。 パフォーマンス上の目安 あくまで個人的な目安ですが、GC間隔が1秒を超えていればチューニングの必要は無いと考えています。 逆に言えば1秒を切っている場合、無駄なオブジェクト生成が潜んでいると見
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く