yotiky Tech Blog

とあるエンジニアの備忘録

Unity - キー操作でオブジェクトを移動する

アタッチした GameObject をキーボードの「WSAD」のキーで移動するサンプルスクリプト

上下移動と上下左右に回転できるように修正。(2021/12/02)

f:id:yotiky:20200805011427g:plain

public class KeyMover : MonoBehaviour
{
    public float moveSpeed = 1;
    public float rotateSpeed = 35;

    // Update is called once per frame
    void Update()
    {
        // 前後左右移動
        if(Input.GetKey(KeyCode.W))
        {
            transform.Translate(0, 0, moveSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.S))
        {
            transform.Translate(0, 0, -moveSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.A))
        {
            transform.Translate(-moveSpeed * Time.deltaTime, 0 ,0);
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.Translate(moveSpeed * Time.deltaTime, 0, 0);
        }

        // 上下移動
        if (Input.GetKey(KeyCode.Space))
        {
            transform.Translate(0, moveSpeed * Time.deltaTime, 0);
        }
        if (Input.GetKey(KeyCode.LeftControl))
        {
            transform.Translate(0, -moveSpeed * Time.deltaTime, 0);
        }

        // 上下左右回転
        if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.Rotate(-rotateSpeed * Time.deltaTime, 0, 0);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.Rotate(rotateSpeed * Time.deltaTime, 0, 0);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.Rotate(0, -rotateSpeed * Time.deltaTime, 0);
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.Rotate(0, rotateSpeed * Time.deltaTime, 0);
        }
    }
}