>>377
なぜC#でそれができないのか?
それはVector3がstructで、C#のstructは「値渡し」だからです。
transform.positionはVector3の参照ではなく、
値をコピーして返しているので、ダイレクトに中身の変更はできないのです。

なのでnew Vector3()で丸ごと変えるのが正解。