Menu
CoddyTech

キーで操作する

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

Input.GetKey(KeyCode.Space) は、Space を押し続けている間は毎フレーム true を返し、それ以外の場合は false を返します。Update() でこれを確認し、yes と返されたときだけ動かすと、プレイヤーがオブジェクトを操作できます。

この木箱は、Space を押し続けている間、毎秒 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 を使うとエラーが発生します。

challenge icon

チャレンジ

簡単

プレイヤーが矢印キーでキューブを操縦できるようにしましょう。

  1. Update()で、Input.GetKey(KeyCode.RightArrow)がtrueの間、new Vector3(speed * Time.deltaTime, 0, 0)をtransform.positionに加えます。
  2. KeyCode.LeftArrowを押している間は、同じVector3を-=で引きます。

「プレイ」を押し、ゲーム画面をクリックして矢印キーを押し続けます。キューブが左右に滑ります。その後、「確認」を押します。

自分で試してみよう

using UnityEngine;

public class Steering : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // 右矢印キー:右に移動。左矢印キー:左に移動。
    }
}

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

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