KITASENJU DESIGN BLOG

memo, html, javascript, unity

particle system rescale

子供のパーティクルサイズを親のスケールにあわせてリスケール

 public class ChildParticleScaler : MonoBehaviour
 {
     float scale;
     List<ParticleSystem> particles = new List<ParticleSystem>();
 
     void Start()
     {
         scale = transform.localScale.x;
         particles.AddRange(GameObject.FindObjectsOfType<ParticleSystem>());
         foreach (ParticleSystem ps in particles)
             ps.transform.localScale *= scale;
     }
 
     void Update()
     {
         if (transform.hasChanged)
         {
             float curScale = transform.localScale.x;
             foreach (ParticleSystem ps in particles)
                 ps.transform.localScale *= curScale / scale;
             scale = curScale;
             transform.hasChanged = false;
         }
     }
 }
"FOOTER"