Unity体験 第4回 ~キーボードでCubeを動かしてみよう~

はじめに
前回は、プログラムを書いてCubeを自動で動かしました。
今回は、自分でキーボードを使ってCubeを操作してみます。
ゲームでは、プレイヤーの操作に応じてキャラクターが動きます。
今日は、その第一歩を体験してみましょう。
今日の目標
今日は次のことを体験します。
- 前回のプログラムを書き換える
- 矢印キーの入力を取得する
- Cubeを自由に動かす
- 移動速度を変更する
① 前回のプロジェクトを開こう
前回作成したUnityプロジェクトを開きます。
Hierarchyには
- Plane
- Cube
- Sphere
がある状態にしておきます。
② MoveCube.csを書き換えよう
前回作成した MoveCube.cs を開きます。
今回は、Update()メソッドの内容を書き換えて、矢印キーで動くようにします。
using UnityEngine;
using UnityEngine.InputSystem;
public class MoveCube : MonoBehaviour
{
[SerializeField]
float speed = 3.0f;
void Update()
{
Vector3 move = Vector3.zero;
if (Keyboard.current.leftArrowKey.isPressed)
{
move.x = -1;
}
if (Keyboard.current.rightArrowKey.isPressed)
{
move.x = 1;
}
if (Keyboard.current.upArrowKey.isPressed)
{
move.z = 1;
}
if (Keyboard.current.downArrowKey.isPressed)
{
move.z = -1;
}
transform.Translate(move * speed * Time.deltaTime);
}
}
[SerializeField] を付けた変数は、UnityのInspectorに表示され、コードを書き換えなくても値を変更できます。
保存したらUnityへ戻ります。
③ Playしてみよう
Playボタンを押してみましょう。
キーボードの矢印キーを押すと、
- ← 左へ移動
- → 右へ移動
- ↑ 前へ移動
- ↓ 後ろへ移動
するようになります。
前回は自動で動いていましたが、今回は自分で操作できるようになりました。
④ Speedを変えてみよう
Cubeを選択して、Inspectorを見てみましょう。
MoveCubeの中に「Speed」という項目が表示されています。
まずPlayする前に、Speedの値を変えて、動きを比べてみましょう。
- 1
- 3
- 5
- 10
数値を大きくすると、Cubeの移動速度が速くなります。
ゲームでは、このような値を調整して遊びやすさを決めています。
※Play中にもSpeedの値を変更できますが、Playを停止すると変更前の値に戻ります。今回はPlayする前に値を変更して試してみましょう。
⑤ Time.deltaTimeとは?
移動するときに
Time.deltaTime
を掛けています。
これは、パソコンの性能が違っても、ほぼ同じ速さで動くようにするためです。
Unityでは非常によく使われる大切な機能です。
⑥ 壁を作って歩いてみよう
Cubeを複製して壁を作ります。
その間を歩いてみましょう。
壁を自由に配置すると、自分だけの小さなコースが完成します。
Challenge(できる人向け)
時間があれば挑戦してみましょう。
- 壁を迷路のように配置する
- Speedを自分好みに調整する
- スタート地点やゴール地点を作る
- 左+上など、2つのキーを同時に押すと、どう動くか試してみる(なぜそうなるのかは、3か月後に学びます)
完成形は人それぞれ違っていて構いません。
今日のまとめ
今日は初めてキーボード入力を使いました。
今日体験したこと
- ✅ 前回のプログラムを書き換えた
- ✅ 矢印キーでCubeを操作した
- ✅ 移動速度を変更した
- ✅
Time.deltaTimeを使った - ✅ 自分だけのコースを作って歩いた
最後に
前回は「プログラムで自動的に動くCube」を作りました。
今回は「自分で操作できるCube」になりました。
ゲームは、このように少しずつ機能を追加しながら作られていきます。
今回は体験しやすいように、Keyboard.current を使ってキーボードを直接読み取りました。本格的なゲームでは、Input Actionsを使って、「Move」という操作と、キーボードやゲームパッドなどの入力機器を切り離す方法もあります。詳しくはUnity 6でキー入力による移動を実装する ― Input Systemの基本をご覧ください。
今回でUnity体験は一区切りです。3か月後の授業では、ここで触れたことを、一つずつ理由から学んでいきます。
前の回:Unity体験 第3回 ~初めてプログラムで動かしてみよう~
エディター画面の各ウィンドウの役割を詳しく知りたい方は、Unity 6の画面構成を理解する ― Game・Scene・Hierarchy・Inspector・Projectの役割もご覧ください。









ディスカッション
コメント一覧
まだ、コメントがありません