public virtual void OnInit() { Anim_Hash = Animator.StringToHash("Anim"); oldScale = this.transform.localScale; sys = GetComponentsInChildren <ParticleSystem>(); anims = GetComponentsInChildren <Animator>(); trailRs = GetComponentsInChildren <TrailRenderer>(); sysCacheDatas.Clear(); for (int i = 0; i < sys.Length; i++) { ParticleSystem system = sys[i]; ParticleSystemCacheData data = new ParticleSystemCacheData(); data.oldScale = system.transform.localScale; sysCacheDatas.Add(data); } trailCacheDatas.Clear(); for (int i = 0; i < trailRs.Length; i++) { TrailRenderer trail = trailRs[i]; TrailRendererCacheData data = new TrailRendererCacheData(); data.startWidth = trail.startWidth; data.endWidth = trail.endWidth; trailCacheDatas.Add(data); } isInit = true; }
public virtual void SetScale(float scale) { if (!isInit) { OnInit(); } this.transform.localScale = oldScale * scale; if (sys != null && sys.Length > 0) { for (int i = 0; i < sys.Length; i++) { ParticleSystem system = sys[i]; ParticleSystemCacheData cacheData = sysCacheDatas[i]; system.transform.localScale = cacheData.oldScale * scale; } } if (trailRs != null && trailRs.Length > 0) { for (int i = 0; i < trailRs.Length; i++) { TrailRenderer trail = trailRs[i]; TrailRendererCacheData cacheData = trailCacheDatas[i]; trail.startWidth = cacheData.startWidth * scale; trail.endWidth = cacheData.endWidth * scale; } } }
public override void SetScale(float scale) { if (!isInit) { return; } for (int i = 0; i < sys.Length; i++) { ParticleSystem system = sys[i]; ParticleSystemCacheData cacheData = sysCacheDatas[i]; system.transform.localScale = cacheData.oldScale * scale; } for (int i = 0; i < trailRs.Length; i++) { TrailRenderer trail = trailRs[i]; TrailRendererCacheData cacheData = trailCacheDatas[i]; trail.startWidth = cacheData.startWidth * scale; trail.endWidth = cacheData.endWidth * scale; } }