From 4be56669fb764bf61c0246a6e56d18640053b565 Mon Sep 17 00:00:00 2001 From: mob-sakai Date: Wed, 28 Oct 2020 02:08:31 +0900 Subject: [PATCH] feat: improve the material batching --- Scripts/Utils.cs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Scripts/Utils.cs b/Scripts/Utils.cs index c8ffd22..ad7d60d 100644 --- a/Scripts/Utils.cs +++ b/Scripts/Utils.cs @@ -163,11 +163,20 @@ namespace Coffee.UIParticleExtensions var pa = tr.InverseTransformPoint(a.transform.position).z; var pb = tr.InverseTransformPoint(b.transform.position).z; - return Mathf.Approximately(pa, pb) - ? 0 - : pa < pb - ? 1 - : -1; + if (!Mathf.Approximately(pa, pb)) + return pa < pb ? 1 : -1; + + var aQueue = ra.sharedMaterial.renderQueue; + var bQueue = rb.sharedMaterial.renderQueue; + if (aQueue != bQueue) + return aQueue < bQueue ? 1 : -1; + + var aHash = ra.sharedMaterial.GetHashCode(); + var bHash = rb.sharedMaterial.GetHashCode(); + if (aHash != bHash) + return aHash < bHash ? 1 : -1; + + return 0; }); }