diff options
Diffstat (limited to 'GenericForceMovement.cs')
-rw-r--r-- | GenericForceMovement.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/GenericForceMovement.cs b/GenericForceMovement.cs new file mode 100644 index 0000000..4c8160f --- /dev/null +++ b/GenericForceMovement.cs @@ -0,0 +1,40 @@ +using UnityEngine; + +public class GenericForceMovement : MonoBehaviour +{ + public Vector3 movementDirection; + + public float forceMultiplier = 1f; + + public MovementRig[] rigs; + + public bool useGroundedMultiplier; + + private CollisionChecker[] checkers; + + private void Start() + { + checkers = GetComponentsInChildren<CollisionChecker>(); + } + + private void FixedUpdate() + { + float num = 1f; + if (useGroundedMultiplier) + { + num = 0f; + for (int i = 0; i < checkers.Length; i++) + { + if (checkers[i].sinceGrounded < 0.1f) + { + num += 1f / (float)checkers.Length; + } + } + } + MovementRig[] array = rigs; + foreach (MovementRig movementRig in array) + { + movementRig.rig.AddForce(movementDirection * num * forceMultiplier * movementRig.multiplier, ForceMode.Acceleration); + } + } +} |