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 /Slither.cs |
+init
Diffstat (limited to 'Slither.cs')
-rw-r--r-- | Slither.cs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Slither.cs b/Slither.cs new file mode 100644 index 0000000..bd176f4 --- /dev/null +++ b/Slither.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +public class Slither : MonoBehaviour +{ + public float offset; + + public float timeMultiplier = 1f; + + public AnimationCurve slitherCurve; + + public float forceMultiplier; + + private GenericForceMovement movement; + + private void Start() + { + movement = GetComponent<GenericForceMovement>(); + timeMultiplier *= Random.Range(0.9f, 1.1f); + } + + private void FixedUpdate() + { + Vector3 normalized = Vector3.Cross(movement.movementDirection, Vector3.up).normalized; + for (int i = 0; i < movement.rigs.Length; i++) + { + movement.rigs[i].rig.AddForce(normalized * forceMultiplier * slitherCurve.Evaluate((Time.time * timeMultiplier + offset * (float)i) % 1f) / ((float)i * 0.2f + 1f), ForceMode.Acceleration); + } + } +} |