【Unity】C#でtransform.positionの値を変更する

  • 19
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

transform.positionには
ゲームオブジェクトの位置が入っている訳ですが
この値を使う時に
x,y,zのどれかを減らしてまたは
増やして使いたい時ってありますよね

Javascript(Unityscript)を使っている場合は
transform.position.y += 1.0f;

という様な書き方で問題無いんですが、

C#の場合はプロパティが構造体の場合そのメンバー
(Vector3のx,y,z)は直接変更できない仕様になっているので

Javascriptと同じ書き方では使えません。

さて、ならC#でtransform.positionの値は変更できないのか
と言うと、実は出来ます

前置きが長くなりましたが
それならどうすれば出来るのか、というのをこれから紹介します


そのまま言ってしまうと
一度Vector3の変数に取り出して
hoge.y += 1;
という風にして変更してから
transform.position = hoge;
という形で代入して使うようです。

hoge.js
Vector3 pos = transform.position;
pos.y += 2;
transform.position = pos;