private void RequestStep() { if (grounded) { if (isMoving) { nextStepDelay = 1 / (movement.moveSpeed * stepsPerMeter); sound.PlayRandom(); } else if (isTurning) { nextStepDelay = 1 / (movement.turnSpeed * stepsPerAngle); sound.PlayRandom(); } else { nextStepDelay = 0.5f; } } if (nextStepDelay > maxStepCheckTime) { nextStepDelay = maxStepCheckTime; } Invoke("RequestStep", nextStepDelay); }