Unity 動作 9 かぞえる(スコア) すすみ

1🔢 きょうの ゴール

コインを 取るたびに スコアが 1ふえて、Consoleに 出るように するよ。

🌉 Scratchの「[score v] を (1) ずつ変える」= Unityの score = score + 1;。「今の scoreに 1 たして、入れなおす」めいれいだよ。
🧱 Scratch
[score v] を (1) ずつ変える
=↓ おなじ いみ
💻 C#
score = score + 1;

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

⑨は コインが「じぶんで 消えた」。きょうは プレイヤーが 取って、数える――スクリプトを プレイヤー側に 引っこすよ。

👆 ←→キー または したの ◀▶ボタンで コインを 3まい 取ってみよう

2🆕 プレイヤーに スコアの しごとを うつそう

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

10-score

🧩 じゅんびの 4ステップ

1
🔧 Inspector(プレイヤー)
Rigidbody 2D
Mover (Script)
プレイヤーSquare=Rigidbody 2D+Mover(⑥⑧の ふくしゅう)
→
2
🔧 Inspector(コイン)
Circle+Coin (Script)
☑ Is Trigger
コイン=Circle+Coin+Is Trigger(⑦⑨の ふくしゅう)
→
3
📄 Coin.cs の 中身
void Update() {…}
OnTriggerEnter2D {…}
Coinスクリプトから OnTriggerEnter2D部分を けす(2重に 消えない ように)
→
4
🔧 Inspector(プレイヤー)
Player (Script)
プレイヤーに あたらしい Playerスクリプトを 作って アタッチ

🔢 コインは もう「じぶんで 消える」しごとを しない。取られたか どうかは プレイヤー側が しらべるよ。

↑ チェックを いれると すすめるよ

3🔁 まえの ふりかえり

🧠 まえの じかんは OnTriggerEnter2D(さわられた しゅんかんに よばれる)と Destroy(gameObject)を ならったね。おぼえて いるかな?
OnTriggerEnter2Dは いつ よばれる?
✅ さわられた しゅんかん。Start・Updateに つづく 特別な 関数だったね。
Destroy(gameObject); は 何を する?
✅ じぶんを 消す。gameObject=「このスクリプトが ついてる じぶん」。
↑ 2もん こたえると すすめるよ

4🔢 プレイヤーで スコアを かぞえよう

🎯 プレイヤーが コインに さわったら、scoreを 1ふやして、Consoleに 出すよ。

🧩 つかう あたらしい 部品:int score = 0;/score = score + 1;/other.gameObject

int=小数なしの 数を 入れる 変数の しゅるい。score = score + 1;=「今の scoreに 1 たして、また scoreに 入れる」。

🟦 gameObject と 🪙 other.gameObject の ちがい

🟦
gameObject
じぶん(プレイヤー)
🪙
other.gameObject
あいて(さわってきた コイン)

⑨は じぶん(コイン)を Destroy(gameObject)で 消した。きょうは スクリプトが プレイヤーに ついてるので、消したい コインは あいて=other.gameObjectだよ。

🔮 よそうしてみよう:この コードで コインを 3つ 取ると、Consoleには どう 出る?

void OnTriggerEnter2D(Collider2D other)
{
    score = score + 1;
    Debug.Log(score);
    Destroy(other.gameObject);
}
✅ せいかいは B 「1」「2」「3」と じゅんに 出る。コインに さわるたびに 1回ずつ よばれて、そのたびに Debug.Logが 実行されるよ。

🧩 つかう 部品(ヒント・くみあわせて 書いてね):

score = score + 1;
Debug.Log(score);
Destroy(other.gameObject);
✋ やってみよう:プレイヤーの Playerスクリプトに int score = 0;と OnTriggerEnter2Dを 書いて ▶。コインに 3つ さわって、Consoleが「1」「2」「3」と 出たら せいこう!

こたえ:かんせいコードは これ(プレイヤー側)。

using UnityEngine;

public class Player : MonoBehaviour
{
    int score = 0;

    void OnTriggerEnter2D(Collider2D other)
    {
        score = score + 1;
        Debug.Log(score);
        Destroy(other.gameObject);
    }
}

コインに さわるたびに scoreが 1ふえて Consoleに 出て、あいて(コイン)が 消える。「取って、数える」しくみの できあがり。

🤔 かんがえてみよう:score = score + 1;は 算数だと ヘンな式だよね。
プログラミングの =は「右がわを 計算して、左に 入れる」といういみ。まず 右の score + 1を 計算してから、それを 左の scoreに 入れなおしてるんだ。
⚠ わざと ためそう:score = score + 10;に したら どう なる?→ 1回 さわるたびに 10点ずつ ふえるよ。数字を かえるだけで ルールを かんたんに 調節できるね。
↑ チェックを いれると すすめるよ

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

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

小数なしの 数を 入れる 変数の しゅるいは?
✅ int。スコアの ような「1、2、3…」の 数に つかうよ。
score = score + 1;の いみは?
✅ scoreに 1 たして、また scoreに 入れなおす。右を 計算してから 左に 入れるんだったね。
バラバラの コードを 正しい じゅんに ならべて、「取って 数える」Playerを 完成させよう。
void OnTriggerEnter2D(Collider2D other)
{
score = score + 1;
Debug.Log(score);
Destroy(other.gameObject);
}
✅ さわられたら scoreを 1ふやして、Consoleに 出して、あいて(コイン)を 消す。この じゅんばんが たいせつ。
↑ 小テストに ぜんもん せいかいすると すすめるよ

6🎉 かんせい!

コインを 取るたびに スコアが ふえて、Consoleに 出る しくみが できたね。Unity 動作9 クリア ✓

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

  • Coinの OnTriggerEnter2Dを けして、プレイヤーに Playerスクリプトを つけられた?
  • int score = 0;と score = score + 1;を 書けた?
  • コインを 3つ 取って、Consoleに「1」「2」「3」と 出るのを 見た?
  • 「gameObject=じぶん」「other.gameObject=あいて」の ちがいを じぶんの ことばで 言えた?

🚪 もっと やりたい人へ:score = score + 1;を score = score + 5;に かえたら どう なるかな?ためしてみよう!

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