名前付きボタン
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の一覧を照らし合わせてください。
チャレンジ
簡単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);
}
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。