47
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

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;
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
47
Help us understand the problem. What are the problem?