メインコンテンツまでスキップ

Input.GetAxis以外の方法として、

  • Input.GetKey
  • Input.GetButton
  • Input.GetKeyDown
  • Input.GetKeyUp
    などを使用して、ユーザーの入力を処理できます。

Unityにおける各入力メソッドの役割についての説明。

1. Input.GetKey

  • 説明: 特定のキーが押されている間、trueを返します。
  • 使用例: プレイヤーの移動やアクションを、キーが押されている間持続させる場合に使います。
  • 戻り値: キーが押されている場合はtrue、そうでなければfalse
if (Input.GetKey(KeyCode.W))
{
// Wキーが押されている間の処理
}


2. Input.GetButton

  • 説明: Input Managerで設定されたボタンが押されている間、trueを返します。
  • 使用例: ジャンプや攻撃など、アクションボタンの持続的な入力を検出する場合に使います。
  • 戻り値: ボタンが押されている場合はtrue、そうでなければfalse
if (Input.GetButton("Jump"))
{
// "Jump"ボタンが押されている間の処理
}

3. Input.GetKeyDown

  • 説明: 特定のキーが押された瞬間(フレーム)にtrueを返します。
  • 使用例: 一度だけ実行されるアクション(例: アイテムを拾う、スキルを発動する)に使用します。
  • 戻り値: キーがこのフレームで押された場合はtrue、そうでなければfalse
if (Input.GetKeyDown(KeyCode.Space))
{
// スペースキーが押された瞬間の処理
}


4. Input.GetKeyUp

  • 説明: 特定のキーが離された瞬間(フレーム)にtrueを返します。
  • 使用例: ボタンを離した時の処理(例: ジャンプの終わり、攻撃の終了)に使用します。
  • 戻り値: キーがこのフレームで離された場合はtrue、そうでなければfalse
if (Input.GetKeyUp(KeyCode.Space))
{
// スペースキーが離された瞬間の処理
}


まとめ

  • Input.GetKey: キーが押されている間ずっとtrueを返す。
  • Input.GetButton: Input Managerで設定されたボタンが押されている間ずっとtrueを返す。
  • Input.GetKeyDown: キーが押された瞬間のみtrueを返す。
  • Input.GetKeyUp: キーが離された瞬間のみtrueを返す。




サンプルプログラム(Input.GetKeyを使用)

この例では、Input.GetKeyを使って、WASDキーや矢印キーでキャラクターを移動させる方法を示します。

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public float speed = 5f; // プレイヤーの移動速度

void Update()
{
// プレイヤーの移動ベクトルを初期化
Vector3 movement = Vector3.zero;

// Wキーまたは上矢印キーが押されたら前に移動
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
{
movement += Vector3.forward;
}
// Sキーまたは下矢印キーが押されたら後ろに移動
if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
{
movement += Vector3.back;
}
// Aキーまたは左矢印キーが押されたら左に移動
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
{
movement += Vector3.left;
}
// Dキーまたは右矢印キーが押されたら右に移動
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
{
movement += Vector3.right;
}

// プレイヤーを移動させる
transform.Translate(movement * speed * Time.deltaTime);
}
}


解説

  • Input.GetKey:

    • Input.GetKey(KeyCode.W)はWキーが押されている間、trueを返します。このように、他のキーに対しても同様にチェックすることで、プレイヤーの移動を制御します。
  • Vector3:

    • Vector3.forward, Vector3.back, Vector3.left, Vector3.rightを使って、各方向への移動ベクトルを簡潔に作成しています。