おはようございます!
1月24日 金曜日。晴れ🌞
予想気温14/6℃。寒くない!!
さあさあ、今日も学習してまいります。
今日の教材はこちら、
[PR]
CHAPTER 5 上下左右キーで移動して衝突
CHAPTER 5.5 「衝突したら、表示」でゲームオーバー
🐶 敵と衝突したら、ゲームオーバー
・「ゲームオーバー」の画像を配置

・おばけに対し以下の通り追加
(1)「On Collision Show」アタッチ
・Target Object:プレイキャラのオブジェクトを設定
・Show Object:ゲームオーバーのオブジェクトを設定
(2)「On Collision Stop Game」アタッチ
・Target Object:プレイキャラのオブジェクトを設定
・「Play」ボタンで実行

🐶 スクリプトの中身を見てみる
<「衝突したら、表示する(On Collision Show)」スクリプト(抜粋)>
・Start関数
void Start()
{
showObject.SetActive(false); // 非表示にする
}
【書式】オブジェクトを消す
<ゲームオブジェクト>.SetActive(false);
・衝突検出&表示
void OnCollisionEnter2D(Collision2D collision) { // 判定枠に衝突したとき
// 衝突したものが、目標オブジェクトか、タグ名なら
if (collision.gameObject == targetObject ||
collision.gameObject.tag == tagName)
{
showObject.SetActive(true); // 「ゲームオーバー」オブジェクトを表示する
}
}
【書式】オブジェクトを表示する
<ゲームオブジェクト>.SetActive(true);
オブジェクトはわかるけど「タグ」ってなんだろうな~って思ってたらわかりました👇

オブジェクトにはタグ付けができてそのタグ名が衝突した場合でも処理するってことですね。
つまり、オブジェクトはそれのみだけど、タグなら複数対応可能ってことか。

おけ!
<「衝突したら、ゲームをストップする」スクリプト(抜粋)>
・Start関数
void Start ()
{
Time.timeScale = 1; // 時間を動かす
}
ゲーム開始時は、ゲームを通常の速度で進行。
・衝突検出&ストップ
void OnCollisionEnter2D(Collision2D collision) // 衝突したとき
{
// 衝突したものが、目標オブジェクトか、タグ名なら
if (collision.gameObject == targetObject ||
collision.gameObject.tag == tagName)
{
Time.timeScale = 0; // 時間を止める
}
}
「Time.timeScale = 0;」でFixedUpdateの繰り返し処理を止める。
🐶 宝箱と衝突したら、ゲームクリアを表示
・「ゲームクリア」の画像を配置

・宝箱の画像に「Box Collider 2D」をアタッチ
・プレイキャラの画像に「On Collision Show」をアタッチ
・Target Object:プレイキャラのオブジェクトを設定
・Show Object:ゲームクリアのオブジェクトを設定
・プレイキャラの画像に「On Collision Stop Game」をアタッチ
・Target Object:宝箱のオブジェクトを設定
・「Play」ボタンで実行

CHAPTER 5.6 「衝突したら、消す」で扉を開ける
🐶 鍵と衝突したら、扉を消すようにする
・まずは画像を配置

・扉の画像に「Box Collider 2D」をアタッチ
・鍵の画像に「On Collision Hide」をアタッチ
・Target Object:プレイキャラのオブジェクトを設定
・Hide Object:宝箱のオブジェクトを設定
・「Play」ボタンで実行

🐶 スクリプトの中身を見てみる
<「衝突したら、消す(On Collision Hide)」スクリプト(抜粋)>
・衝突検出&消す
void OnCollisionEnter2D(Collision2D collision) // 衝突したとき
{
// 衝突したものが、目標オブジェクトか、タグ名なら
if (collision.gameObject == targetObject ||
collision.gameObject.tag == tagName)
{
hideObject.SetActive(false); // Hide Objectプロパティに設定した
// オブジェクトを非表示にする
}
}
午前の部、一旦終了です。
一層ゲームっぽくなってきました。
ボリューム的にアレなのでCHAPTER6の「アニメーション」に突入します!

やってくぜ!