You've already forked ParticleEffectForUGUI
mirror of
https://github.com/mob-sakai/ParticleEffectForUGUI.git
synced 2026-05-14 20:20:06 +00:00
feat: ignore rendering of particle systems that do not have a SharedMaterial and TrailMaterial
Close #118
This commit is contained in:
@@ -164,6 +164,8 @@ namespace Coffee.UIExtensions
|
|||||||
// No particle to render.
|
// No particle to render.
|
||||||
var currentPs = particle.particles[i];
|
var currentPs = particle.particles[i];
|
||||||
if (!currentPs || !currentPs.IsAlive() || currentPs.particleCount == 0) continue;
|
if (!currentPs || !currentPs.IsAlive() || currentPs.particleCount == 0) continue;
|
||||||
|
var r = currentPs.GetComponent<ParticleSystemRenderer>();
|
||||||
|
if (!r.sharedMaterial && !r.trailMaterial) continue;
|
||||||
|
|
||||||
// Calc matrix.
|
// Calc matrix.
|
||||||
Profiler.BeginSample("[UIParticle] Bake Mesh > Calc matrix");
|
Profiler.BeginSample("[UIParticle] Bake Mesh > Calc matrix");
|
||||||
@@ -218,7 +220,6 @@ namespace Coffee.UIExtensions
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Bake main particles.
|
// Bake main particles.
|
||||||
var r = currentPs.GetComponent<ParticleSystemRenderer>();
|
|
||||||
if (CanBakeMesh(r))
|
if (CanBakeMesh(r))
|
||||||
{
|
{
|
||||||
Profiler.BeginSample("[UIParticle] Bake Mesh > Bake Main Particles");
|
Profiler.BeginSample("[UIParticle] Bake Mesh > Bake Main Particles");
|
||||||
|
|||||||
@@ -194,8 +194,12 @@ namespace Coffee.UIParticleExtensions
|
|||||||
var bRenderer = b.GetComponent<ParticleSystemRenderer>();
|
var bRenderer = b.GetComponent<ParticleSystemRenderer>();
|
||||||
|
|
||||||
// Render queue: ascending
|
// Render queue: ascending
|
||||||
var aMat = aRenderer.sharedMaterial;
|
var aMat = aRenderer.sharedMaterial ?? aRenderer.trailMaterial;
|
||||||
var bMat = bRenderer.sharedMaterial;
|
var bMat = bRenderer.sharedMaterial ?? bRenderer.trailMaterial;
|
||||||
|
if (!aMat && !bMat) return 0;
|
||||||
|
if (!aMat) return -1;
|
||||||
|
if (!bMat) return 1;
|
||||||
|
|
||||||
if (aMat.renderQueue != bMat.renderQueue)
|
if (aMat.renderQueue != bMat.renderQueue)
|
||||||
return aMat.renderQueue - bMat.renderQueue;
|
return aMat.renderQueue - bMat.renderQueue;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user