Пример #1
0
        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;
        }
Пример #2
0
        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;
                }
            }
        }
Пример #3
0
        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;
            }
        }