Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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;
motokitsu
現在中学生 UnityやらBlenderやらに手を出しています 書くこと 個人的に躓いたところや、便利なテクニック等等
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした