Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Input System | 最初のスクリプトを書く
Unity初心者向け

bookInput System

メニューを表示するにはスワイプしてください

UnityのInput Systemについて説明します。キーボードのタップからジョイスティックの傾きまで、あらゆる入力をキャプチャし、ゲームプレイのアクションに変換する仕組みです。

主要なメソッドの理解

  • Input.GetAxis;
  • Input.GetButton;
  • Input.GetKey

これら3つのメソッドは、Unityでユーザー入力を取得するための主なツールです。それぞれの長所、短所、最適な使用例について見ていきます。

Input.GetAxis

  • 目的: アナログジョイスティック、キーボードキー(WASD)、マウスの動きなど、軸ベースの入力デバイスの大きさと方向を読み取る;
  • 戻り値: -1(完全な負方向)から1(完全な正方向)までの値。0は入力なし、正の値は軸の正方向の動き、負の値は負方向の動きを表す;
  • 用途: 移動、操舵、カメラ回転、強度の段階的変化(例: 車の加速など)、連続的なアクションに適している。

例: キーボードやジョイスティックでの左右の動きをキャプチャ。

private void Update()
{
    float horizontalInput = Input.GetAxis("Horizontal");
}

Input.GetButton

  • 目的: 離散的なボタン(例:キーボードのスペースバー、ゲームパッドのAボタン、タッチスクリーンのタップ)が押されているか(true)、押されていないか(false)を検出。
  • 戻り値: 真偽値(true または false)。
  • 用途: ジャンプ、武器の発射、アビリティの使用、メニューの起動などのアクション切り替えに最適。

例: ジャンプボタンが押されているかを確認。

private void Update()
{
    bool isJumping = Input.GetButton("Jump");
}

Input.GetKey

  • 目的: 特定のキーボードキーが押され続けているか(true)、押されていないか(false)を検出。
  • 戻り値: ブール値(true または false)。
  • 用途: 主にキーボード操作による制御に使用。インベントリ管理、ホットキー、キャラクターのアビリティなどのアクションに利用。

例: Shiftキーが押されているかを判定。

private void Update()
{
    bool isShiftPressed = Input.GetKey(KeyCode.LeftShift);
}

適切な入力方法の選択

適切な入力方法の選択は、直感的で反応の良いゲームプレイを実現するために重要。

  • Input.GetAxis:キャラクターの移動やカメラの回転など、連続的で方向感知が必要な操作に最適;
  • Input.GetButton:ジャンプや武器の発射など、単純なオン/オフの切り替え操作に使用;
  • Input.GetKey:インベントリ管理やホットキーの有効化など、キーボード特有の操作に適している。

注意点:

  • 効率性: これらのメソッドを毎フレーム不要に呼び出すことはパフォーマンスに影響するため避ける。可能な場合は条件分岐やイベントベースの処理を活用;
  • 試行錯誤: 様々な組み合わせを試し、ゲームデザインやターゲットユーザーに最適な方法を見つける;

試行錯誤により、最も直感的で反応の良い操作方法を見つけることができる。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  5
some-alt