Проверяй дистанцию между платформой и точкой
var distance = (point.position - transform.position).magnitude;
Vector3.magnitude Возвращает длину вектора. Вот пример:
public class Example : MonoBehaviour
{
[SerializeField] private Transform _pointA, _pointB = null;
[SerializeField] private float _speed = 10f;
[SerializeField] private float _closeDistance = 0.2f;
private Transform _currentPoint;
private void Start()
{
_currentPoint = _pointA;
}
private void FixedUpdate()
{
MoveTo(_currentPoint.position);
}
private void MoveTo(Vector3 position)
{
var nextPosition = transform.position;
var delta = (position - transform.position).normalized;
delta *= _speed * Time.deltaTime;
nextPosition += delta;
transform.position = nextPosition;
UpdatePoint();
}
private void UpdatePoint()
{
var distance = (_currentPoint.position - transform.position).magnitude;
if (distance <= _closeDistance)
{
SwitchPoint();
}
}
private void SwitchPoint()
{
_currentPoint = _currentPoint == _pointA ? _pointB : _pointA;
}
}
В UpdatePoint я рассчитываю расстояние между точкой и позицией платформы и, если оно меньше максимальной дистанции приближения, то меняю точку, к которой стремится платформа.
С тем же успехом можно сравнивать позиции платформы и точки, к которой она стремится и, если они равны, менять точку.