1✨ きょうの ゴール
プレイヤーが コインに さわったら、コインが 消える(取れた!)ようにするよ。「コインあつめワールド」の かなめの しくみ!
void OnTriggerEnter2D(Collider2D other)。さわられた しゅんかんに よばれる 特別な 関数だよ。
<[コイン v] に触れた>
void OnTriggerEnter2D(Collider2D other)
{
}
おなじ いみの ことを、C#は 文字で 書くんだね
2🆕 プレイヤーと コインを よういしよう
おなじ プロジェクトに あたらしい シーンを ついかして、なまえを これに してね:
9-atari
🧩 よういする 3つの もの
3🔁 まえの ふりかえり
Rigidbody 2D(重力を つける 部品)と AddForce(力を 加える)を ならったね。おぼえて いるかな?Rigidbody 2Dを つけると、どう なる?AddForce(new Vector2(0, power), ForceMode2D.Impulse); は 何を する?4✨ OnTriggerEnter2Dで コインを 消す
🎯 「さわられた しゅんかんに 1回だけ よばれる」特別な 関数を、コインの スクリプトに 書くよ。
🧩 3つめの 特別な 関数
🧩 つかう あたらしい 部品:void OnTriggerEnter2D(Collider2D other) { Destroy(gameObject); }
(2Dが つくだけで、考えかたは おなじだよ)
「さわられた しゅんかんに 1回 よばれる 特別な関数」だよ。Destroy(gameObject);=じぶんを 消す めいれい。
🔮 よそうしてみよう:この コードを コインの Coinスクリプトに 書いて、プレイヤーが コインに さわると どう なる?
void OnTriggerEnter2D(Collider2D other)
{
Destroy(gameObject);
}
gameObject=「じぶん」=コインなんだ。🧩 つかう 部品(ヒント・くみあわせて 書いてね):
void OnTriggerEnter2D(Collider2D other)
Destroy(gameObject);
いっきに 書かずに、1ぎょう 書いたら ▶で 動かして 見るを くりかえそう。
こたえ:かんせいコードは これ。
using UnityEngine;
public class Coin : MonoBehaviour
{
void OnTriggerEnter2D(Collider2D other)
{
Destroy(gameObject);
}
}
プレイヤーが コインに さわると OnTriggerEnter2Dが 1回 よばれて、Destroy(gameObject);で コイン じしんが 消える。これで「コインを 取る」しくみの できあがり!
ヒント:
Destroy(gameObject);の スクリプトは コインに ついてる。gameObjectは「このスクリプトが ついてる じぶん」を さすよ。5📝 コーディング 小テスト
きょうと まえの ことを あわせて といてみよう。ぜんもん せいかいで「かんせい」に すすめるよ。
OnTriggerEnter2Dは いつ よばれる?Destroy(gameObject); は 何を する?gameObject=「このスクリプトが ついてる じぶん」。Is Triggerに チェックを 入れる いみは?6🎉 かんせい!
コインに さわったら 消える しくみが 作れたね。「コインあつめワールド」の かなめが できたよ!Unity 動作8 クリア ✓
👩🏫 先生と いっしょに かくにんしよう!
- プレイヤーSquare(Rigidbody 2D+Mover)と コイン(Is Trigger付き)を よういできた?
OnTriggerEnter2Dが「さわられた しゅんかんに 1回」よばれることを せつめいできた?Destroy(gameObject);が「じぶんを 消す」ことを、目で たしかめた?- なぜ コインの方が 消えるのか(スクリプトが コインに ついてるから)を じぶんの ことばで 言えた?
🚪 もっと やりたい人へ:Destroy(gameObject);を Destroy(other.gameObject);に かえたら どう なるかな?ためして みよう!