Menu
CoddyTech

名前付きボタン

CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 14/67。

キーのほかに、Unityにはボタンがあります。Input Manager(Edit、Project Settings、Input Manager)に一覧表示されている名前で、それぞれ1つ以上のキーに割り当てられています。Input.GetButtonDown("Fire1")はキーではなく、名前を調べます。新しいプロジェクトには次のボタンがあります。

  • "Jump":Space
  • "Fire1":左Ctrlまたはマウスの左ボタン
  • "Fire2":左Altまたはマウスの右ボタン
  • "Submit"と"Cancel":EnterとEscape

ゲームパッドのボタンも同じ名前に割り当てられており、コードに手を加えずにInput Managerでキーを変更できます。GetButton、GetButtonDown、GetButtonUpは、GetKey、GetKeyDown、GetKeyUpと同じように動作します。このブラスターは、Ctrlを押すかクリックするたびに射撃をログに記録します。

void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        Debug.Log("Shot!");
    }
}

名前は文字列なので、スペルを間違えてもコンパイルは通ります。Unityはその行が実行されるときに名前を検索し、その名前のボタンがない場合は毎フレーム例外をスローします。ArgumentException: Input Button Fier1 is not setup.このメッセージが表示されたら、コード内の名前とInput Managerの一覧を照らし合わせてください。

challenge icon

チャレンジ

簡単

Jumpボタンを押している間、カエルは跳ねます。Jumpを押すと一度だけhopユニット分上昇し、Jumpを離すと同じ量だけ元の位置に戻ります。スターターにはすでに上昇する処理が含まれていますが、ゲームを実行するとすぐにエラーが発生します。

Playを押して、Consoleに表示されたエラーを読みましょう。エラーを修正し、ボタンを離したときに着地する処理を追加してから、Checkを押しましょう。

自分で試してみよう

using UnityEngine;

public class Hopper : MonoBehaviour
{
    public float hop = 1.5f;

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Unityスクリプティングの基礎のすべてのレッスン