[Unity 2D] プレイヤーを動かす(キーボード)

どうも、tatsuです!

今回はプレイヤーを動かす(キーボード)方法について説明しようと思います。

[Unity 2D] プレイヤーを動かす(Xboxコントローラー)

2019年8月9日

[Unity 2D] 矢印(方向)キークリックを検知する(Input.GetKey)

2017年11月14日

プレイヤーを動かす(キーボード)

プレイヤーを動かすスクリプトは以下の通りです。今回はキーボードの方向キーで動くようにしてあります。
※このスクリプトを動かしたいオブジェクト(プレイヤー)にアタッチしてください

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class playerScript : MonoBehaviour
{
    // プレイヤーの歩くスピード
    private const float PLAYER_WALK_SPEED = 3f;

    void Start(){
    }

    void Update(){
        // 右キーを押した時の処理
        if (Input.GetKeyDown (KeyCode.RightArrow) || Input.GetKey(KeyCode.RightArrow)) {
            // 右に移動する
            transform.Translate(PLAYER_WALK_SPEED, 0, 0);
            // 向きを右にする
            transform.localScale = new Vector3(1, 1, 1);
        }
 
        // 左キーを押した時の処理
        if (Input.GetKeyDown (KeyCode.LeftArrow) || Input.GetKey(KeyCode.LeftArrow)) {
            // 左に移動する
            transform.Translate(-PLAYER_WALK_SPEED, 0, 0);
            // 向きを左にする
            transform.localScale = new Vector3(-1, 1, 1);
        }

        // 上キーを押したときの処理
        if (Input.GetKeyDown (KeyCode.UpArrow) || Input.GetKey(KeyCode.UpArrow)) {
            // 上に移動する
            transform.Translate(0, PLAYER_WALK_SPEED, 0);
        }
        
        // 下キーを押したときの処理
        if (Input.GetKeyDown (KeyCode.DownArrow) || Input.GetKey(KeyCode.DownArrow)) {
            // 下に移動する
            transform.Translate(0, -PLAYER_WALK_SPEED, 0);
        }
    }
}

 

Input.GetKeyDownは引数に与えられたキーが押されたときにtrueとなり、Input.GetKeyは引数に与えられたキーが押されている間ずっとtrueになります。

そのため、両方をifの条件式にすることでスムーズにプレイヤーを動かすことができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です