diff options
author | chai <215380520@qq.com> | 2024-03-13 11:00:58 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2024-03-13 11:00:58 +0800 |
commit | 6ce8b9e22fc13be34b442c7b6af48b42cd44275a (patch) | |
tree | b38119d2acf0a982cb67e381f146924b9bfc3b3f /ParticleParent.cs |
+init
Diffstat (limited to 'ParticleParent.cs')
-rw-r--r-- | ParticleParent.cs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ParticleParent.cs b/ParticleParent.cs new file mode 100644 index 0000000..dc8de91 --- /dev/null +++ b/ParticleParent.cs @@ -0,0 +1,39 @@ +using UnityEngine; + +public class ParticleParent : MonoBehaviour +{ + public GameObject particleObject; + + private ParticleSystem[] parts; + + private Vector2[] particleSizes; + + private void Start() + { + particleObject = Object.Instantiate(particleObject, base.transform.position, base.transform.rotation); + particleObject.transform.parent = base.transform; + parts = particleObject.GetComponentsInChildren<ParticleSystem>(); + particleSizes = new Vector2[parts.Length]; + for (int i = 0; i < parts.Length; i++) + { + particleSizes[i].x = parts[i].main.startSize.constantMin; + particleSizes[i].y = parts[i].main.startSize.constantMax; + } + } + + private void Update() + { + } + + public void Play(float damage, float multi) + { + for (int i = 0; i < parts.Length; i++) + { + ParticleSystem.MainModule mainModule = default(ParticleSystem.MainModule); + mainModule = parts[i].main; + float num = (1.5f + damage * 0.01f) * multi; + mainModule.startSize = new ParticleSystem.MinMaxCurve(particleSizes[i].x * num, particleSizes[i].y * num); + parts[i].Play(); + } + } +} |