void FixedUpdate() { if (collector == null) { return; } Vector3 dist = collector.transform.position + attractionOffset - transform.position; transform.Translate(dist.sqrMagnitude < attractionSpeed * attractionSpeed ? dist : dist.normalized * attractionSpeed); dist = collector.transform.position + attractionOffset - transform.position; if (dist.sqrMagnitude <= sqrCollectionRadius) { collector.Collect(gameObject); } }