Почему пишется new Vector2, а не просто Vector2?
Потому что такой вот C#.
Чтобы поменять значение transform.position - тебе нужен новый экземпляр Vector2.
Чтобы создать новый экземпляр чего угодно в C# тебе нужно писать new.
Исключение - фабричные методы/свойства, которые сделают new вместо тебя.
Например, в случае Vector2 он мог бы выглядеть так: var newVector = Vector2.Create(x, y), но такого метода по понятным причинам нет, ибо он просто сразу будет вызывать конструктор
Потому что, перед тем как лезть в Unity нужно хотя бы учебник по основам C# полистать, в частности про ООП...