blob: bd176f461f71047d4d02d7d9f551240c5b7b4c2b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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);
}
}
}
|