From 8e1b4eb086e0329151fd761069a4c5aaef6ef138 Mon Sep 17 00:00:00 2001 From: mob-sakai Date: Fri, 17 Jun 2022 13:35:19 +0900 Subject: [PATCH] fix build error and something --- Scripts/UIParticle.cs | 14 ++++++++++++-- Scripts/UIParticleRenderer.cs | 17 +++++++++-------- Scripts/UIParticleUpdater.cs | 2 +- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Scripts/UIParticle.cs b/Scripts/UIParticle.cs index 2cb6754..daa5aae 100644 --- a/Scripts/UIParticle.cs +++ b/Scripts/UIParticle.cs @@ -252,7 +252,7 @@ namespace Coffee.UIExtensions RefreshParticles(gameObject); } - public void RefreshParticles(GameObject root) + private void RefreshParticles(GameObject root) { if (!root) return; root.GetComponentsInChildren(particles); @@ -304,6 +304,8 @@ namespace Coffee.UIExtensions internal void UpdateRenderers() { + if (!isActiveAndEnabled) return; + var bakeCamera = GetBakeCamera(); for (var i = 0; i < m_Renderers.Count; i++) { @@ -328,7 +330,15 @@ namespace Coffee.UIExtensions _tracker.Add(this, rectTransform, DrivenTransformProperties.Scale); UIParticleUpdater.Register(this); RegisterDirtyMaterialCallback(UpdateRendererMaterial); - RefreshParticles(particles); + + if (0 < particles.Count) + { + RefreshParticles(particles); + } + else + { + RefreshParticles(); + } base.OnEnable(); } diff --git a/Scripts/UIParticleRenderer.cs b/Scripts/UIParticleRenderer.cs index d1778da..4ccfd7d 100644 --- a/Scripts/UIParticleRenderer.cs +++ b/Scripts/UIParticleRenderer.cs @@ -113,17 +113,18 @@ namespace Coffee.UIExtensions _particleSystem = null; _renderer = null; _prevParticleCount = 0; - if (0 <= index ) + if (0 <= index) { _index = index; } //_emitter = null; - - material = null; - enabled = false; - - workerMesh.Clear(); - canvasRenderer.SetMesh(workerMesh); + if (this && isActiveAndEnabled) + { + material = null; + workerMesh.Clear(); + canvasRenderer.SetMesh(workerMesh); + enabled = false; + } } public void Set(UIParticle parent, ParticleSystem particleSystem, bool isTrail) @@ -171,7 +172,7 @@ namespace Coffee.UIExtensions { // No particle to render: Clear mesh. if ( - !enabled || !_particleSystem || !_parent || !canvasRenderer || !canvas || !bakeCamera + !isActiveAndEnabled || !_particleSystem || !_parent || !canvasRenderer || !canvas || !bakeCamera || _parent.meshSharing == UIParticle.MeshSharing.Reprica || !transform.lossyScale.GetScaled(_parent.scale3D).IsVisible() // Scale is not visible. || (!_particleSystem.IsAlive() && !_particleSystem.isPlaying) // No particle. diff --git a/Scripts/UIParticleUpdater.cs b/Scripts/UIParticleUpdater.cs index e27bf2a..eb129ba 100644 --- a/Scripts/UIParticleUpdater.cs +++ b/Scripts/UIParticleUpdater.cs @@ -89,7 +89,7 @@ namespace Coffee.UIExtensions s_UpdatedGroupIds.Clear(); // Attract - for(var i = 0;i< s_ActiveAttractors.Count;i++) + for (var i = 0; i < s_ActiveAttractors.Count; i++) { s_ActiveAttractors[i].Attract(); }