Menu
CoddyTech

名前付きボタン

CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 21/85。

キー以外に、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

チャレンジ

簡単

カエルのジャンプを修正して、再び着地できるようにしましょう。

  1. 「プレイ」を押します。Consoleにボタン"Jumpp"に関するエラーが表示されます。"Jump"に変更します。
  2. Input.GetButtonUp("Jump")で2つ目のifを追加し、new Vector3(0, hop, 0)をtransform.positionから引きます。

「プレイ」を押し、Spaceを押し続けてから離します。カエルが跳び上がり、その後着地します。それから「確認」を押します。

自分で試してみよう

using UnityEngine;

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

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

Unityスクリプトの基礎のすべてのレッスン

自分で練習してみよう: Unityプレイグラウンド