バッチ数を減らす必要があります。Unity の優れた機能である「動的バッチ処理」に悩まされています :D 私のゲームには、プレイヤーが操作するたびに変化し続ける小さなオブジェクトがたくさん含まれています。
- オブジェクトに必要な数のマテリアルの 1 つを割り当てても、動的バッチ処理がうまく機能しません。ゲームは、同じマテリアルを使用する 81 個のオブジェクトで、バッチ カウント '3' から始まります。オブジェクト、マテリアルを変更すると、80 (mat01) と 1 (mat02) があるため、「4」バッチが表示されます。別のオブジェクトを mat02 に変更すると、カウントは「4」のままになるはずですよね? しかし、そうではありません!mat02 が過半数になるまで増加し続け、すべてが mat02 に変更されたときにバッチ カウントが「3」に達します。なぜ群衆の団結を待つのですか?
- Unity のこの習慣に関係なく、マテリアル カラーにラープを使用することにしました。その後、明らかなことが起こります。オブジェクトのマテリアルのプロパティを変更すると、マテリアルは「mat01(インスタンス化された)」になり、永遠にインスタンス化され、永遠にバッチのコストがかかります。mat02 を割り当てると、「mat02(instanced)」と表示されます。
罰のような気がします。「私の資料に触れないでください..私はあなたを永遠に犠牲にします!!!」何が問題ですか?はい...その素材を変更しました。今、私はまったく新しいマテリアルを割り当てますが、このかわいそうな人 (ゲームオブジェクト) をピア (バッチ) に戻すのは難しいですか?
また、スクリプトを使用して動的バッチ処理を変更することはできません。
納得いくまで記事を更新していきます。みんな、私が間違っているところとすべてを指摘してください。
更新: 1.着色材料に関する素晴らしい説明このリンクは私に良いことを教えてくれ、これらの行は私にもっと感銘を与えました。バッチ処理は行われなくなりますが、頂点カラーを使用すると、バッチ処理を中断することなくオブジェクトの色を変更できます。" これを試して更新します。
- 頂点カラーリングを使用して問題を解決しました。性能は良さそうです。私は正確に必要なものを達成しました。