void OnTriggerStay(Collider other) { MovingObject movingObject = other.GetComponent <MovingObject>(); if (movingObject != null) { Vector3 offset = transform.position - other.transform.position; Vector3 suckDir = Vector3.ProjectOnPlane(offset, Vector3.up).normalized; float triggerSize = triggerCollider.radius * triggerCollider.transform.lossyScale.x; float distanceMutliplier = distanceMultiplierCurve.Evaluate(offset.sqrMagnitude / (triggerSize * triggerSize)); movingObject.BeingSucked(suckDir * suckStrength * distanceMutliplier * Time.fixedDeltaTime); } }