バッテラが如く

プログラミングしましょ!

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

この記事の情報は次のバージョンで動作確認しています。

  • MacOS Monterey (12.1)
  • Unity (2021.3.2f1)
  • transform.positionのxだけ変更する

    どうも、バッテラです。

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

    構造体がプロパティだと直接変更ができなくなるみたいです。なのでVector3型を直接代入しないといけないのですがやり方が2つぐらいあったので共有していきます。

    パターン1

    transform.position = new Vector3(
                    1,
                    transform.position.y,
                    transform.position.z
                    );
    

    最初に思いつくのはこれですよね。少し冗長になりがちです。

    パターン2

    Vector3 pos = transform.position;
    pos.x = 1;
    transform.position = pos;
    

    ローカル変数に一度逃して書き換えてからセットする手法。