一応補足しておくとtransform.positionはプロパティ、つまり内部的にはgetpos(),setpos()みたいなgetter/setterメソッド実行してるんでフィールドではないですよ
だからtransform.position.x++ができない
だってgetposの戻り値で確保された一時変数に加算して放置という無意味な操作をしてるんだもん
transform.setpos(pos)やって初めてゲームオブジェクトの座標という情報が更新される

この辺がソースなので俺の説明が不安なら読んでみるといいですよ
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/compiler-messages/cs1612