Instead of relying on a delay that would be different depending on how far back you pull the ball, wouldn’t it be more accurate to reference the RigidBody2D of the pivot and then check the transform of the pivot vs the ball?
Something like:
[SerializeField] private Rigidbody2D pivot;
private bool isLaunching = false;
void Update()
{
if (pivot.position.x - transform.position.x < 0.1f && isLaunching)
{
springJoint.enabled = false;
springJoint = null;
}
…
and setting isLaunching to true in the LaunchBall method.
I’ve been working on a launcher style mechanic, and wanted something more accurate. Is there a specific reason to use a time delay over a positional argument?