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/Cluster.cs |
+ init
Diffstat (limited to 'GameCode/Cluster.cs')
-rw-r--r-- | GameCode/Cluster.cs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/GameCode/Cluster.cs b/GameCode/Cluster.cs new file mode 100644 index 0000000..2e5c648 --- /dev/null +++ b/GameCode/Cluster.cs @@ -0,0 +1,46 @@ +using UnityEngine; + +public class Cluster : MonoBehaviour +{ + public float distanceToTravel = 8f; + + public float spread; + + public float velocitySpread; + + public int clusters = 3; + + private MoveTransform move; + + private void Start() + { + move = GetComponentInParent<MoveTransform>(); + } + + private void Update() + { + if (!(move.distanceTravelled > distanceToTravel)) + { + return; + } + for (int i = 0; i < clusters; i++) + { + GameObject obj = Object.Instantiate(base.transform.root.gameObject, base.transform.root.position, base.transform.root.rotation); + Cluster componentInChildren = obj.GetComponentInChildren<Cluster>(); + if ((bool)componentInChildren) + { + Object.Destroy(componentInChildren); + } + MoveTransform component = obj.GetComponent<MoveTransform>(); + if ((bool)component) + { + component.DontRunStart = true; + component.velocity = base.transform.root.GetComponent<MoveTransform>().velocity; + component.multiplier = base.transform.root.GetComponent<MoveTransform>().multiplier; + component.velocity += base.transform.right * Random.Range(0f - spread, spread); + component.velocity *= Random.Range(1f - velocitySpread * 0.01f, 1f + velocitySpread * 0.01f); + } + } + Object.Destroy(this); + } +} |