はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】なぜtransform.position.xでx座標を代入できないのか

はじめに

Unityを初めた頃、きっと誰もが

transform.position.x = 10;

のような書き方をしたことがあるのではないでしょうか?

これは当然エラーとなってしまうのですが、その理由は今まで私はよく分かっていませんでした。

最近Unityの公式にてその理由を解説していたので、軽く紹介したいと思います。

なぜダメなのか

f:id:hanaaaaaachiru:20190308233120p:plain

transform.positionは「参照」ではなく「実体」を返すことが原因みたいです。

つまり、画像の通り複製の値を変更しても目的の値は変更されないということになります。

ということで正しくは以下のコードになるわけですね。

f:id:hanaaaaaachiru:20190308233435p:plain

さいごに

参考にリンクを貼っているのですが、Unityの公式にてUnityの初学者向けの動画を出してくださっています。
今回の内容を含めてかなり分かりやすく説明してくださっているので、一度見てみてはどうでしょうか!