private void FixedUpdate() { if (rigidbody == null || path == null) { return; } if (!pauseAtEnds || Time.time > lastEndTime + pauseAtEndsTime) { bool wasReversed = reversed; lineAlpha = path.MoveAtFixedSpeed(lineAlpha, speed * Time.deltaTime, ref reversed); if (wasReversed != reversed) { lastEndTime = Time.time; } rigidbody.position = path.GetPoint(lineAlpha); } }