Я не понимаю твоей логики там.Если вы хотите переместить объект в определенную позицию, как вы просили.Существует более упрощенный способ перемещения объекта в Unity.См. Документация Unity .
public class Example : MonoBehaviour
{
public Vector3 myTarget;
private void Start()
{
StartCoroutine(MoveTo());
}
private IEnumerator MoveTo()
{
while (transform.position != myTarget)
{
transform.position = Vector3.MoveTowards(transform.position, myTarget, Time.deltaTime * 2f);
yield return null;
}
Debug.Log("We reached Target. Done!");
yield return null;
}
}
Если вы хотите, вы можете объявить myTarget как GameObject.В этом случае вам нужно будет создать пустой игровой объект или выбрать уже существующий.