From 766cdff5ffa72b65d7f106658d1603f47739b2ba Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 27 Oct 2023 11:05:14 +0800 Subject: + init --- GameCode/PlayerSkinParticle.cs | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 GameCode/PlayerSkinParticle.cs (limited to 'GameCode/PlayerSkinParticle.cs') 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(); + part.GetComponent().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); + } + } +} -- cgit v1.1-26-g67d0