【Unity/C#】オブジェクトを移動させる方法

Unityでオブジェクトを移動させる方法についてソースコード付きで入門者向けにまとめました。

方法① transform.Translate

Unityの3Dオブジェクトを回転させるにはRotateメソッドを使います。

書式

transform.Translate (x, y, z)
パラメータ 説明
x x軸方向へ移動
y y軸方向へ移動
z z軸方向へ移動

Vector3(0, 1, 0)ならy軸方向に移動し続けます。
Vector3(0, 2, 0)というように値を大きくすると移動速度が大きくなります。

ソースコード

サンプルプログラムのソースコードです。
※下記のスクリプトを「RotateCube」という名前でAssetsに追加し、3Dオブジェクトにドラッグ&ドロップして適用します。

using UnityEngine;
using System.Collections;

public class RotateCube : MonoBehaviour {

    void Update () {
         transform.Translate (0, 0, 1);
    }
}

方法② transform.position

transform.positionの値を書き換えることでオブジェクトの位置を変化させることができます。

ソースコード

サンプルプログラムのソースコードです。

using UnityEngine;
using System.Collections;

public class RotateCube : MonoBehaviour {

    public float speed = 2.0f;

    void Update () {
        if (Input.GetKey ("up")) {
            transform.position += transform.forward * speed * Time.deltaTime;
        }
        if (Input.GetKey ("down")) {
            transform.position -= transform.forward * speed * Time.deltaTime;
        }
        if (Input.GetKey("right")) {
            transform.position += transform.right * speed * Time.deltaTime;
        }
        if (Input.GetKey ("left")) {
            transform.position -= transform.right * speed * Time.deltaTime;
        }
    }
}

矢印キーを押した分だけオブジェクトが移動します。

関連記事
参考 【Unity入門】ゲームプログラミング編【Unity入門】物理シミュレーション編【C#入門】サンプル集
関連記事