パフォーマンスに影響を与えるポイントについて【TOP6】
四、空のテクスチャサンプルを含むマテリアル――91%
Shadersを作成するときに、計算用にいくつかのテクスチャを宣言します。ただし、このShaderを使用してMaterialインスタンスを作成する場合、これらのテクスチャは不要であるか、過失のためにマテリアルにテクスチャを追加するのを忘れる可能性があります。その場合、Unityはデフォルトの「テクスチャ」をマテリアルに割り当てます。この状況は計算結果と表示効果に影響を与えませんが、Unityは引き続き関連する計算を実行するため、パフォーマンスの消耗を引き起こします。
したがって、このルールの検出を提供して、開発チームがテクスチャを必要としないマテリアルを見つけ、関連するテクスチャ宣言を削除またはコメントアウトして、Unityによる不要な計算を回避し、GPUへの圧力を軽減できるようにします。もともとテクスチャを追加する予定のマテリアルは、その構造をさらに最適化すると判断されます。
五、OptimizeGameObjectsのAnimatorコンポーネントをオンにしていない――87%
アニメーションシステムに関しては、Animationコンポーネントは古いバージョンのUnityのアニメーションシステムに対応し、Animatorは新しいアニメーションシステムMecanimに対応するコンポーネントであることがわかっています。
Mecanimアニメーションシステムを使用して、対応するアセットのImport Settingsで「Optimize Game Objects」オプションを有効にできます。
選択されていない状態では、Unityはアニメーションクリップの処理時にTransformのレベル情報を削除しないため、スケルタルアニメーションの再生中に不要なCPU計算コストが発生します。
選択した後、Unityは関連する最適化を実行します。簡単に言うと、Transformコンポーネントのみを含むボーンノードはUnityによってインポートされません(ただし、Extra Transform Pathsで対応するボーン名を確認することで、目的のボーンノードを保持できます)。関連するボーン情報がavatarにマッピングされます。アニメーションシステムは、フレームごとにこれらのボーンノードの変換(GameObject)を更新する必要はありませんが、avatarのボーン情報を取得してスキンメッシュを更新し、アニメーションを表現します。これによって、CPU計算が節約でき、アニメーションのコストが削減されます。
ここで、UIのAnimatorコンポーネントはOptimizeGameObjectsの最適化アイテムをサポートしておらず、処理する必要がないことに注意してください。したがって、この部分のAnimatorは検出ルールで除外され、検出されなくなります。
六、Scale曲線を含むアニメーションクリップ――86%
Scaleスケーリングアニメーションは、オブジェクトの縮小と拡大を制御する役割を果たします。次に、Scale曲線の役割は、アニメーション内のオブジェクトの各フレームのスケーリング状況を記録することです。
多くの場合、インポートされたアニメーションアセットには、オブジェクトの空間位置変換のみが含まれます。つまり、Scale曲線の値は常に1です。したがって、アニメーションクリップの表示効果には影響しませんが、実際には曲線データ全体が存在し、不要なメモリの浪費につながります。
この不要なメモリ消費を回避するために、このルールを使用して、Scale曲線を含むこれらのアニメーションクリップを除外します。これは、開発チームがチェックするのに便利です。
以上がこれら3つの検出ルールの説明です。皆様の役に立てれば幸いです。
UWA公式サイト:https://jp.uwa4d.com
UWA公式ブログ:https://blog.jp.uwa4d.com
UWA公式Q&Aコミュニティ(中国語注意):https://answer.uwa4d.com