【Unity】transform.positionの1軸だけ変更する方法

Unity (2021.3.2f1)}

はじめに

transform.positionのxだけ変更しようとすると・・・

transformpositionxの値だけ変えたいと思ってこう書くとエラーになります。

これは構造体がプロパティだと直接変更ができないようです。

なので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です。