From 6ce8b9e22fc13be34b442c7b6af48b42cd44275a Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Wed, 13 Mar 2024 11:00:58 +0800 Subject: +init --- Slither.cs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Slither.cs (limited to 'Slither.cs') 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(); + 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); + } + } +} -- cgit v1.1-26-g67d0