コードの型
オブジェクトの位置(Position)を、現在の位置から指定した分だけ「ずらす」命令です。
C#
void Update()
{
// 右方向に 0.1 ずつ移動させる
transform.Translate(0.1f, 0, 0);
}
コードの仕組み
Translate は「並進(へいしん)」を意味します。オブジェクトの現在の座標を起点に、指定した値(x, y, z)を足し算することで位置を更新します。
- 相対移動:
Translateは「現在の位置からの距離」を移動させるため、今の場所にプラスアルファする感覚で動かせます。 - 座標軸:
x: 横方向(右がプラス)y: 縦方向(上がプラス)z: 前後方向(奥がプラス)
活用例(スムーズな移動処理)
Time.deltaTime と組み合わせるのがプロのやり方です。これを使うことで、PCの性能に関わらず「毎秒指定した距離」進むようになります。
C#
public float speed = 5.0f; // インスペクターで設定できる移動速度
void Update()
{
// 「方向 × 速さ × 時間」で移動量を計算
transform.Translate(Vector3.right * speed * Time.deltaTime);
}
その他(実用的なテクニック)
- ローカル座標とワールド座標: デフォルトでは「自分の向いている方向(ローカル)」を基準に移動します。もし「世界の絶対的な右(ワールド)」に動かしたい場合は、第2引数を使います。
transform.Translate(Vector3.right * speed * Time.deltaTime, Space.World); - Transformとの関係:
gameObject.transform.Translate(...)の略称です。すべてのGameObjectには必ずTransformコンポーネントがくっついているため、単にtransform.と書くだけでアクセスできます。 - 衝突判定:
Translateで動かすと、壁を突き抜けてしまうことがあります。物理的にぶつかる動きを作りたい場合は、TranslateではなくRigidbody.velocity(物理演算)を使うのが一般的です。
初心者向けまとめ
Transform.Translate は、「今の場所から、こっちに少しズレろ!」と指示する命令です。
SetActive:箱を出す・隠すInstantiate:新しい箱を作るTranslate:箱を移動させる
この3つを組み合わせるだけで、キャラクターを出現させて、動かして、消すといったゲームの基本サイクルがすべて作れるようになります。

コメント