diff options
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); + } + } +} |