名前付きボタン
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の一覧を照らし合わせてください。
チャレンジ
簡単カエルのジャンプを修正して、再び着地できるようにしましょう。
- 「プレイ」を押します。Consoleにボタン
"Jumpp"に関するエラーが表示されます。"Jump"に変更します。 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プレイグラウンド