キーで操作する
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 を使うとエラーが発生します。
チャレンジ
簡単プレイヤーが矢印キーでキューブを操縦できるようにしましょう。
Update()で、Input.GetKey(KeyCode.RightArrow)がtrueの間、new Vector3(speed * Time.deltaTime, 0, 0)をtransform.positionに加えます。KeyCode.LeftArrowを押している間は、同じVector3を-=で引きます。
「プレイ」を押し、ゲーム画面をクリックして矢印キーを押し続けます。キューブが左右に滑ります。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class Steering : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// 右矢印キー:右に移動。左矢印キー:左に移動。
}
}
Unityスクリプトの基礎のすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド