summaryrefslogtreecommitdiff
path: root/ParticleParent.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-03-13 11:00:58 +0800
committerchai <215380520@qq.com>2024-03-13 11:00:58 +0800
commit6ce8b9e22fc13be34b442c7b6af48b42cd44275a (patch)
treeb38119d2acf0a982cb67e381f146924b9bfc3b3f /ParticleParent.cs
+init
Diffstat (limited to 'ParticleParent.cs')
-rw-r--r--ParticleParent.cs39
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();
+ }
+ }
+}