ニュース

Top  >   6. GameObject・Component・Transform  >   Q, cubeを右に動かすために「pos = transform.position;」「pos += Vector3.right;」のように書いたが上手く動かない

Q, cubeを右に動かすために「pos = transform.position;」「pos += Vector3.right;」のように書いたが上手く動かない

2026/03/19

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

Vector3は値型なので代入時にコピーされます。

原因 / 背景

  • 設定や参照先が不足していないかを確認し、関連コンポーネントを順番に切り分けると原因を見つけやすくなります。
  • Unity Editor だけでなく、対象プラットフォームの実機でも挙動を確認してください。

実装 / 手順

  1. Vector3は値型なので代入時にコピーされます。
  2. transform.positionに直接代入して座標を書き換えてください。

サンプルコード

using UnityEngine;

public class MoveCubeExample : MonoBehaviour
{
    [SerializeField] private float speed = 2f;

    private void Update()
    {
        Vector3 pos = transform.position;
        pos += Vector3.right * speed * Time.deltaTime;
        transform.position = pos;
    }
}

※ 実機確認が必要な項目は、Editor だけで判断せず、対象デバイスでも必ず動作確認してください。

難易度:Level 2(初心者)
対象プラットフォーム:PC,Visual Studio,Unity
関連キーワード:C#,aca

Level 1-2 向けバナー