Categories: Unity

Unity本の作例改造-Chapter3-1:ボールが床に接触したらボールを消去する

こんにちは!Unityの入門書で通称”ヒヨコ本”として親しまれている”Unity5入門 最新開発環境による簡単3D&2Dゲーム制作 “では、Unityの基本機能を使いながら分かりやすい手順でいくつかの作例が紹介されています。

今回からヒヨコ本で紹介されている作例に色々とゲーム要素を追加してオリジナルゲームに仕上げる内容を連載してみることにしました。

ヒヨコ本の内容

Unity5入門 最新開発環境による簡単3D&2Dゲーム制作 」の目次を見てみましょう。

Chapter1:Unityの概要と基礎知識
Chapter2:インターフェイスと使い方
Chapter3:Unityを使ってみよう!
Chapter4:キャラクターを動かしてみよう!
Chapter5:ゲームのUIを作ってみよう!
Chapter6:ゲームを作ろう!(1)
Chapter7:ゲームを作ろう!(2)
Chapter8:2D機能を使ってみよう!

Chapter3の作例をチェック

まずはヒヨコ本のChapter3の作例の完成状態をWebGLでビルドしてみました。ゲームがスタートすると上から玉がスロープに沿って転がって床まで落ちると終わりです。

ボールが床に接地したら消去する

それではヒヨコ本のChapter3の作例を改造していきましょう。まずはボールが転がって床に設置したら消えるようにします。オブジェクト”Ball”にスクリプトを作成して割り当てます。

Ballオブジェクトにスクリプトを割り当てる

[Hierarchy]ウィンドウ > Ball を選択。[Inspector]ウィンドウ > [Add Component]ボタン > New Scriptを選択して下記の通り入力したら[Create and Add]ボタンをクリック。
Name DestroyBall / Language C Sharp

スクリプト”DestroyBall”を編集

[Project]ウィンドウでスクリプト”DestroyBall”をダブルクリックしてエディタを起動。下記のコードを入力します。今回はあたり判定にOnColliderEnterを使用しました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DestroyBall : MonoBehaviour
{
    // オブジェクトに接触したらボールを削除する処理
    void OnCollisionEnter(Collision col)
    {
        // 接触するオブジェクトのタグが"Floor"であれば
        if (col.gameObject.tag == "Floor")
        {

            // オブジェクトを1秒後に削除する
            Destroy(gameObject, 1.0f);
        }
    }
}

床オブジェクトにタグを設定

[Hierarchy]ウィンドウ > Floor を選択。[Inspector]ウィンドウ > Tag > [Untagged]をクリック > [Add Tag]を選択。

Tag > List is Empty > + をクリック。

New Tag Name > New TagフィールドにFloor を入力して[Save]ボタンをクリック。

下図の通り新しいタグ”Floor”が登録されました。

[Hierarchy]ウィンドウ > Floor を選択。[Untagged]をクリック > [Floor]を選択します。

今回のまとめ

今回はボールが床に接触したらボールを消去するしくみを追加しました。次回はマウスクリックでボールをシーンに発生する仕組みを追加してみたいと思います。

corevale