【Unity】2Dゲーム制作入門/ゲームクリアとゲームオーバーを実装

【Unity】2Dゲーム制作入門/ゲームクリア・ゲームオーバーの実装の記事のアイキャッチ画像です。画像には「5.ゲームクリアとゲームオーバー」の文字が書かれています。
Unity
この記事は約5分で読めます。

おはようございます!

1月24日 金曜日。晴れ🌞
予想気温14/6℃。寒くない!!

さあさあ、今日も学習してまいります。

今日の教材はこちら、

[PR]

[PR]

 

 

スポンサーリンク

・「ゲームオーバー」の画像を配置

Unityエディタで、ゲームオーバー画像を配置している様子を示しています。

 

・おばけに対し以下の通り追加

  (1)「On Collision Show」アタッチ
   ・Target Object:プレイキャラのオブジェクトを設定
   ・Show Object:ゲームオーバーのオブジェクトを設定

  (2)「On Collision Stop Game」アタッチ
   ・Target Object:プレイキャラのオブジェクトを設定

 

・「Play」ボタンで実行

Unityで作成した2Dゲームのプレイ画面です。プレイヤーが敵キャラクターと衝突し、ゲームオーバーになった際に、ゲームオーバー画面が表示される様子を示しています。

 

<「衝突したら、表示する(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);

 

オブジェクトはわかるけど「タグ」ってなんだろうな~って思ってたらわかりました👇

Unityエディタのインスペクターウィンドウで、オブジェクトにタグを設定している様子を示しています。タグは、オブジェクトを分類し、スクリプトで特定のオブジェクトを識別するために使用します。

オブジェクトにはタグ付けができてそのタグ名が衝突した場合でも処理するってことですね。

つまり、オブジェクトはそれのみだけど、タグなら複数対応可能ってことか。

おけ!

 

[PR]

 

 

<「衝突したら、ゲームをストップする」スクリプト(抜粋)>

・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の繰り返し処理を止める

 

・「ゲームクリア」の画像を配置

Unityエディタで、ゲームクリア画像と宝箱の画像を配置している様子を示しています。中央にゲームクリアのテキスト、右上に宝箱が配置されています。

 

・宝箱の画像に「Box Collider 2D」をアタッチ

・プレイキャラの画像に「On Collision Show」をアタッチ
 ・Target Object:プレイキャラのオブジェクトを設定
 ・Show Object:ゲームクリアのオブジェクトを設定

・プレイキャラの画像に「On Collision Stop Game」をアタッチ
 ・Target Object:宝箱のオブジェクトを設定

 

・「Play」ボタンで実行

Unityで作成した2Dゲームのプレイ画面です。プレイヤーが操作し、おばけを避けながら宝箱にタッチすることでゲームクリアとなる様子を示しています。

 

[PR]

 

 

・まずは画像を配置

Unityエディタのシーン画面です。プレイヤーが進むために開ける必要がある扉と、その扉を開けるための鍵が配置されています。

 

・扉の画像に「Box Collider 2D」をアタッチ

・鍵の画像に「On Collision Hide」をアタッチ
 ・Target Object:プレイキャラのオブジェクトを設定
 ・Hide Object:宝箱のオブジェクトを設定

 

・「Play」ボタンで実行

Unityで作成した2Dゲームのプレイ画面です。プレイヤーが鍵に触れると、扉が消えて先に進むことができる様子を示しています。

 

<「衝突したら、消す(On Collision Hide)」スクリプト(抜粋)>

・衝突検出&消す

void OnCollisionEnter2D(Collision2D collision)  // 衝突したとき
{
// 衝突したものが、目標オブジェクトか、タグ名なら
if (collision.gameObject == targetObject ||
collision.gameObject.tag == tagName)
{
hideObject.SetActive(false);  // Hide Objectプロパティに設定した
                  // オブジェクトを非表示にする
}
}

 

[PR]

 

 

 

午前の部、一旦終了です。

 

一層ゲームっぽくなってきました。

 

ボリューム的にアレなのでCHAPTER6の「アニメーション」に突入します!

やってくぜ!

 

 

 

 

 

 

PAGE TOP
タイトルとURLをコピーしました