void FixedUpdate() { if (currentState == States.Stuck) { var headgrapple = grappleSites[1]; var backgrapple = grappleSites[0]; var direction = headgrapple.position - backgrapple.position; var force = direction.normalized * (characterController.grappleForce + direction.magnitude * characterController.grappleForceDistanceBoost); characterController.applyContinuousForce(force, characterController.grappleMaxVelocity); getRope().numPositions = grappleSites.Count; getRope().SetPositions(grappleSites.Select(g => g.position).ToArray()); } }