キーで操作する
CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 5/67。
スペースキーを押している間、Input.GetKey(KeyCode.Space)は毎フレームtrueになり、押していないときはfalseになります。Update()で確認し、はいの場合にだけ移動するようにすると、プレイヤーがオブジェクトを操作できます。
この木箱は、スペースキーを押している間、毎秒lift単位で上昇します。前のレッスンと同じように、Time.deltaTimeを使うことで、速度を毎秒単位に保てます。
public float lift = 2f;
void Update()
{
if (Input.GetKey(KeyCode.Space))
{
transform.position += new Vector3(0, lift * Time.deltaTime, 0);
}
}すべてのキーにはKeyCodeがあります。例:KeyCode.UpArrow、KeyCode.W、KeyCode.Returnなど。まずゲームビューをクリックして、キー入力が届くようにしてください。Unity 6についての注意:新しいプロジェクトでは新しいInput Systemが使われます。Active Input Handling(Project Settings、Player)をBothに設定するまで、そこでInput.GetKeyを使うとエラーになります。
チャレンジ
簡単プレイヤーが立方体を操作できるようにします。右矢印キーを押している間は、毎秒speed単位の速さで右(+x方向)に移動し、左矢印キーを押している間は、同じ速さで左に移動します。どのキーも押していないときは、その場にとどまります。
Playを押し、ゲームをクリックして矢印キーを試してから、Checkを押してください。
自分で試してみよう
using UnityEngine;
public class Steering : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// 右矢印キー:右に移動。左矢印キー:左に移動。
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。