Instance IDの定義

今回の主な話題:Instance IDの定義、モデルMesh Compression導入設置、Static BatchingがDrawCallへの影響。


アセット管理

Q1:公式ドキュメントでInstance IDへの定義は次のとおりです。

「The instance id of an object is always guaranteed to be unique.」

したがって、一つのSpriteアセット、ゲーム内のInstance IDは唯一はずですが、テスト中に妙な問題が起こしました。

これはプリントImageにあるSpriteのInstance IDですが、アセットファイルにこの画像を選択し、InspectorのDebugモードで表示されたInstance IDと一致しません。

後で、Imageに対応するSpriteのGUIDをプリントしました。.metaファイルのGUIDに対応しているため、Instance IDに一致性がない理由がわかりません。

私はそう理解しています。コードで取得したInstance IDと、Inspectorで確認された画像のInstance IDが属するオブジェクトはインスタンスではありません。つまり、Instance IDの唯一性は具体的なアセットではなく、オブジェクトインスタンスに対するものです。

たとえば、プロジェクト内のPrefabファイルのInstance IDと、シーン内のインスタンス化されたオブジェクトのInstance IDも異なります。


アセット管理

Q2: 3Dモデルをインポートすると、Mesh Compressionの設置は、最終的にどんな結果を導きますか?Unityのドキュメントを読んだで、それはメッシュのストレージの圧縮最適化にすぎないようです。直接的な利点は、パッケージ本体が小さくなることですが、一部のモデルが変形しやすくなることもあります。

では、問題は下記のようです。

1)ロード時には圧縮により遅くなりますか?または、圧縮完了後にMeshにロードして初期化する速度は早くなれますか?(パッケージが小さくなりましたから)

2)これを開くと実行中のパフォーマンス最適化に役立ちますか?

3)このスイッチは法線効果に影響しますか?

4)このオプションを開くことをお勧めしますか?

1)数値上の精密桁数のみが削減されるため、ロード速度の差は小さいはずです。さらに、メッシュ自体がそれほど大きくない場合、ロード速度は非常に高速ですから、ロードの違いを気にする必要はありません。

2)ドキュメントによると、Compressionをオンにするかどうかに関係なく、ロード後にメモリ占用が同じになりますから、実行時のパフォーマンスに違いはないはずです。

3)法線の部分が圧縮されるかどうかは本当に言いにくいので、具体的なプロジェクトと組み合わせて確認する必要があります。

4)このオプションを有効にするかどうかは、モデル自体によって異なります。アーティストさんが視覚的に許容できると感じる限り、Compressionをできるだけ高く選択すれば良いです。


レンダリング

Q3:UWA Blogで前の記事を読みましたが、一つ疑問があります。なぜStatic BatchingはDrawCallの数 に影響しませんか?

正確には、Unityバージョン5.0〜5.3で、Static BatchingはGraphics DriverにあるDraw Callの回数を影響しません。これは、これらのバージョンでは、Unityが4.xのようにindex bufferを動的にバッチ処理しないためです。この点は、UWA DAYでもう詳しく説明しました。

ただし、Unity 5.4バージョン以降、Draw Callバッチ操作は元に戻され、以前の4.xと同じであるため、現在Unity 5.5、5.6、および2017以降のバージョンを使用している場合は、Static Batching後にDraw Callは変わる可能性があります。


コード

Q4:サブクラスが親クラスのシリアル化されたフィールドがInspectorに表示されないようにする方法はありますか?注:親クラスフィールドはvirtulではありません。

PropertyAttributeは実現できはずです。考え方は大体次とおります。PropertyDrawerは、OnGUIの時にSerializedObjectのタイプを判断し、それが親クラスである場合にのみ本格的な描画を行います。


UWA公式サイト:https://jp.uwa4d.com

UWA公式ブログ:https://blog.jp.uwa4d.com

UWA公式Q&Aコミュニティ(中国語注意):https://answer.uwa4d.com