fix #16; Using prefab view will cause a lot of errors

pull/33/head
mob-sakai 2018-12-11 16:23:41 +09:00
parent 8900798570
commit f35d8fa8e7
1 changed files with 10 additions and 7 deletions

View File

@ -19,7 +19,7 @@ namespace Coffee.UIExtensions
static readonly int s_IdMainTex = Shader.PropertyToID ("_MainTex"); static readonly int s_IdMainTex = Shader.PropertyToID ("_MainTex");
static readonly List<Vector3> s_Vertices = new List<Vector3> (); static readonly List<Vector3> s_Vertices = new List<Vector3> ();
static readonly List<UIParticle> s_TempRelatables = new List<UIParticle> (); static readonly List<UIParticle> s_TempRelatables = new List<UIParticle> ();
static readonly List<UIParticle> s_ActiveSoftMasks = new List<UIParticle> (); static readonly List<UIParticle> s_ActiveParticles = new List<UIParticle> ();
//################################ //################################
@ -109,11 +109,11 @@ namespace Coffee.UIExtensions
protected override void OnEnable () protected override void OnEnable ()
{ {
// Register. // Register.
if (s_ActiveSoftMasks.Count == 0) if (s_ActiveParticles.Count == 0)
{ {
Canvas.willRenderCanvases += UpdateMeshes; Canvas.willRenderCanvases += UpdateMeshes;
} }
s_ActiveSoftMasks.Add (this); s_ActiveParticles.Add (this);
// Reset the parent-child relation. // Reset the parent-child relation.
GetComponentsInChildren<UIParticle> (false, s_TempRelatables); GetComponentsInChildren<UIParticle> (false, s_TempRelatables);
@ -137,8 +137,8 @@ namespace Coffee.UIExtensions
protected override void OnDisable () protected override void OnDisable ()
{ {
// Unregister. // Unregister.
s_ActiveSoftMasks.Remove (this); s_ActiveParticles.Remove (this);
if (s_ActiveSoftMasks.Count == 0) if (s_ActiveParticles.Count == 0)
{ {
Canvas.willRenderCanvases -= UpdateMeshes; Canvas.willRenderCanvases -= UpdateMeshes;
} }
@ -208,11 +208,14 @@ namespace Coffee.UIExtensions
static void UpdateMeshes () static void UpdateMeshes ()
{ {
foreach (var uip in s_ActiveSoftMasks) foreach (var uip in s_ActiveParticles)
{
if(uip)
{ {
uip.UpdateMesh (); uip.UpdateMesh ();
} }
} }
}
void UpdateMesh () void UpdateMesh ()
{ {