Unity (2021.3.2f1)}
はじめに
transform.positionのxだけ変更しようとすると・・・
transform
のposition
でx
の値だけ変えたいと思ってこう書くとエラーになります。
これは構造体がプロパティだと直接変更ができないようです。
なのでVector3型を直接代入しないといけないのですがやり方が2つぐらいあったので共有していきます。
パターン1
最初に思いつくのはこれですよね。
transform.position = new Vector3( 1, // X軸だけ変える transform.position.y, transform.position.z );
この実装は少しコードが横に長くなります。
パターン2 (ローカル変数に逃す)
ローカル変数に一度逃して書き換えてからセットする手法。
Vector3 pos = transform.position; pos.x = 1; transform.position = pos;
あとがき
今回は例としてX軸だけ変えるというのをやっています。他の軸も同様な方法でやればおkです。