Unity 動作 5 キーで あやつる すすみ

1🕹 きょうの ゴール

これまで Squareは かってに 動いたね。きょうは ←→キーで きみが Squareを うごかすよ!「コインあつめワールド」の プレイヤーが たんじょうする だいじな 回だよ。

🌉 Scratchの「◯キーが押された?」= Unityの Input.GetKey(KeyCode.RightArrow)。「いま そのキーが おされてる?」を きく めいれいだよ。
🧱 Scratch
<[右向き矢印 v] キーが押された>
=↓ おなじ いみ
💻 C#
Input.GetKey(KeyCode.RightArrow)

おなじ いみの ことを、C#は 文字で 書くんだね

👆 ←→キー または したの ◀▶ボタンで Squareを うごかそう

2🆕 シーンと せっていを よういしよう

おなじ プロジェクトに あたらしい シーンを ついかして、なまえを これに してね:

6-key

Squareを 1つ 置いて、public float speed = 0.05f; を もった Moverスクリプトを アタッチしよう(まえの じかんと おなじ てじゅん)。

⚠️ Unity6000の おとしあな:キー入力の せってい

Unity6000の あたらしい プロジェクトは、そのままだと Input.GetKeyが うごかないことが あるよ。さきに 1回だけ せっていを かえておこう。

1
Edit ▸
Assets ▸
🖱️
メニューの Edit → Project Settings を ひらく
→
2
⚙️ Project Settings
Player
Other Settings
Active Input Handling
Player → Other Settings → Active Input Handling を さがす
→
3
Input Manager (Old)
Input System Package (New)
Both
Both に かえる → Unityが 🔄再起動する(こわくないよ)
⚠ このエラーが 出たら この せっていが げんいん:
InvalidOperationException: You are trying to read Input using the UnityEngine.Input class...
→ 上の せってい(Active Input Handling → Both)に すれば なおるよ。
↑ 2つとも チェックを いれると すすめるよ

3🔁 まえの ふりかえり

🧠 まえの じかんは if(もし~なら)で Squareを 折り返させたね。おぼえて いるかな?
if ( ) の ( ) の 中に 書くのは 何?
✅ じょうけん。「もし ◯◯なら」の ◯◯ の ぶぶんだね。
speed = -speed; は どういう いみ?
✅ むきが ぎゃくに なる。折り返しに つかったね。
↑ 2もん こたえると すすめるよ

4🕹 キーで Squareを うごかす

これまで Squareは かってに 動いた。きょうからは きみが 動かす!

🌉 Input.GetKey(KeyCode.RightArrow)=「→キーが いま 押されてる?」の しつもん。ifと くみあわせて つかうよ(前回の if が ここでも いきるね)。
🧱 Scratch
<[右向き矢印 v] キーが押された>
=↓ おなじ いみ
💻 C#
Input.GetKey(KeyCode.RightArrow)

おなじ いみの ことを、C#は 文字で 書くんだね

🧩 つかう あたらしい 部品:Input.GetKey(KeyCode.RightArrow)

🔮 よそうしてみよう:下の コードを ▶で じっこうすると、キーを おしてない とき Squareは どう なる?

void Update()
{
    if (Input.GetKey(KeyCode.RightArrow))
    {
        transform.Translate(speed, 0, 0);
    }
}
✅ せいかいは A 動かない。ifの 中は じょうけんが 成立した ときだけ 実行される。押してない ときは じょうけんが 成立しないから、Translateは よばれないんだ。

🧩 つかう 部品(ヒント):

if (Input.GetKey(KeyCode.RightArrow))
transform.Translate(speed, 0, 0);
✋ やってみよう:Update()に 右キーの ifを 書いて ▶。→キーを おした ときだけ Squareが 動けば せいこう!
✋ やってみよう②:左キーの ifも 足して ▶。←→ じゆうに うごかせたら せいこう!

こたえ:かんせいコードは これ。

using UnityEngine;

public class Mover : MonoBehaviour
{
    public float speed = 0.05f;

    void Update()
    {
        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.Translate(speed, 0, 0);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.Translate(-speed, 0, 0);
        }
    }
}

2つの ifが それぞれ 独立して キーを 見はっているから、←→ どちらも うごかせるんだ。これが「プレイヤーの うごき」の きほん!

🤔 かんがえてみよう:← に 動かすには、どこを 変えれば いいかな?
ヒント:かえる ところは 2つ。KeyCode.RightArrow→KeyCode.LeftArrow、そして speed→-speed。
↑ チェックを いれると すすめるよ

5📝 コーディング 小テスト

きょうと まえの ことを あわせて といてみよう。ぜんもん せいかいで「かんせい」に すすめるよ。

Input.GetKey は 何を しらべる?
✅ キーが 押されてるか。true か false で こたえる。
キーを 押してない とき、ifの 中は どう なる?
✅ 実行されない。じょうけんが 成立しない ときは { } の 中は とばされるよ。
バラバラの コードを 正しい じゅんに ならべて、「→キーで うごく」if文を 完成させよう。
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Translate(speed, 0, 0);
}
✅ if ( )の { } の 中に Translate。じょうけんが 成立した ときだけ 動くよ。
↑ 小テストに ぜんもん せいかいすると すすめるよ

6🎉 かんせい!

←→キーで Squareを あやつれたね。プレイヤーが たんじょうしたよ!Unity 動作5 クリア ✓

👩‍🏫 先生と いっしょに かくにんしよう!

  • Active Input Handlingを Bothに かえて、Input.GetKeyを 動かせた?
  • Input.GetKey(KeyCode.RightArrow)が「キーが 押されてるか」を しらべる、を せつめいできた?
  • 右キー・左キー りょうほうの ifを 書いて、Squareを じゆうに うごかせた?
  • 「if の 中は じょうけんが 成立した ときだけ」を じぶんの ことばで 言えた?

🚪 もっと やりたい人へ:KeyCode.UpArrowと KeyCode.DownArrowも 足して、上下にも うごかしてみよう!

↑ さいごまで すすむと おせるよ