Input Managerについて
基本的な設定
-
Input Managerにアクセスする方法:
- Unityエディタのメニューから「Edit」→「Project Settings」→「Input Manager」を選択します。
- Input Managerのウィンドウが開き、デフォルトの設定が表示されます。
-
アクションの追加:
- 「Axes」セクションで、デフォルトの入力設定(例: Horizontal, Vertical, Jumpなど)があります。
- 新しいアクションを追加するには、リストの下にある「+」ボタンをクリックします。
-
設定の変更:
- 各アクションには「Name」「Positive Button」「Negative Button」「Alt Positive Button」などの設定があります。
これらを使って、特定の入力デバイスやボタンにマッピングできます。
- 各アクションには「Name」「Positive Button」「Negative Button」「Alt Positive Button」などの設定があります。
サンプルプログラム
以下は、Input Managerを使ってプレイヤーキャラクターを移動させる基本的なスクリプトの例です。
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f; // プレイヤーの移動速度
void Update()
{
// ユーザーの入力を取得
float moveHorizontal = Input.GetAxis("Horizontal"); // 左右の入力
float moveVertical = Input.GetAxis("Vertical"); // 前後の入力
// プレイヤーの移動ベクトルを作成
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
// プレイヤーを移動させる
transform.Translate(movement * speed * Time.deltaTime);
}
}
解説
-
Input.GetAxis:
Input.GetAxis("Horizontal")とInput.GetAxis("Vertical")は、Input Managerで設定した「Horizontal」と「Vertical」にマッピングされた入力を取得します。- これにより、移動が滑らかになります。キーが押されると値が-1(左)または1(右)を返します。アナログスティックの場合は、-1から1の範囲の値を返します。
-
transform.Translate:
- プレイヤーオブジェクトの位置を更新するために使用されます。
movementベクトルにspeedとTime.deltaTimeを掛けることで、フレームレートに依存しない移動速度を実現しています。
- プレイヤーオブジェクトの位置を更新するために使用されます。