diff options
author | chai <215380520@qq.com> | 2023-10-27 11:05:14 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2023-10-27 11:05:14 +0800 |
commit | 766cdff5ffa72b65d7f106658d1603f47739b2ba (patch) | |
tree | 34d7799a94dfa9be182825577583c0fa6dc935f7 /GameCode/PlayerSkinParticle.cs |
+ init
Diffstat (limited to 'GameCode/PlayerSkinParticle.cs')
-rw-r--r-- | GameCode/PlayerSkinParticle.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/GameCode/PlayerSkinParticle.cs b/GameCode/PlayerSkinParticle.cs new file mode 100644 index 0000000..22c2f99 --- /dev/null +++ b/GameCode/PlayerSkinParticle.cs @@ -0,0 +1,54 @@ +using UnityEngine; + +public class PlayerSkinParticle : MonoBehaviour +{ + private Color startColor1; + + private Color startColor2; + + private ParticleSystem.MainModule main; + + private ParticleSystem part; + + private ParticleSystem.Particle[] particles; + + private float counter; + + public void Init(int spriteLayerID) + { + part = GetComponent<ParticleSystem>(); + part.GetComponent<ParticleSystemRenderer>().sortingLayerID = spriteLayerID; + main = part.main; + startColor1 = main.startColor.colorMin; + startColor2 = main.startColor.colorMax; + part.Play(); + } + + private void Update() + { + counter += TimeHandler.deltaTime; + } + + private void OnEnable() + { + if ((bool)part) + { + part.Play(); + } + } + + public void BlinkColor(Color blinkColor) + { + if (!(counter < 0.1f)) + { + counter = 0f; + particles = new ParticleSystem.Particle[part.main.maxParticles]; + int num = part.GetParticles(particles); + for (int i = 0; i < num; i++) + { + particles[i].startColor = blinkColor; + } + part.SetParticles(particles, num); + } + } +} |