はじめに
ゲームオブジェクトのtransformを直接変更して移動させる方法を紹介します。2D、3Dのどちらでも同様に移動できます!
移動方法
transform.Translateを使います。下の例は、x軸方向に1移動させるコードです。移動量を指定します。
this.gameObject.transform.Translate(1, 0, 0)
実際に使用例を見てみましょう。矢印キーを押すと上下左右に移動します。
移動速度は、speedというパラメータで調節できます。Update関数で、毎フレーム0.01移動させています。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveTransform : MonoBehaviour
{
public float speed = 0.01f;
void Update()
{
if (Input.GetKey(KeyCode.LeftArrow)) this.gameObject.transform.Translate(-speed, 0, 0);
else if (Input.GetKey(KeyCode.RightArrow)) this.gameObject.transform.Translate(speed, 0, 0);
else if (Input.GetKey(KeyCode.UpArrow)) this.gameObject.transform.Translate(0, speed, 0);
else if (Input.GetKey(KeyCode.DownArrow)) this.gameObject.transform.Translate(0, -speed, 0);
}
}
このスクリプトをキャラクターにアタッチしてゲームを開始すると、キャラクターが動くようになりました!
おわりに
transformを使った移動方法でした。
当たり判定や物理エンジンを使って移動させたい場合は、こちらの記事を見てみてください。