Я на собеседованиях спрашиваю простой вопрос: Почему нельзя написать transform.position.y = 123f;? Ответы бывают разные от банального "не знаю" и "ну юнити не дает" до единственно верного 🙂
Вообще довольно забавно, что мало кто из разрабов в принципе вникает в суть происходящего, а она банальна: transform.position - это getter, а get - это метод. А Vector3 - это структура.
Вот и получается, что при вызове get мы делаем копию структуры и пытаемся ее менять. А это очевидно, что не приведет ни к чему.