04 %E3%82%B9%E3%83%86%E3%83%BC%E3%82%B8%E3%82%92%E4%BD%9C%E3%82%8B - ruccho/first-step-to-unity GitHub Wiki

04 ステージを作る

さて、ボールを動かすことができるようになり、ちょっとずつゲームらしさが出てきました。しかしまっ平らなステージでは味気が無さ過ぎますね。

1 壁を作る

Hierarchyの + > 3D Object > Cube で立方体を出現させます。位置や大きさをいじって壁を作ってみました。ついでに床も広くして、ほどよい感じに。

image

カメラ位置も調整して、ステージ全体が画角に収まるようにしておきます。

image

ここでひとつ注意が必要なのですが、ゲームが実行中にシーンに対して行った編集は保存されず、ゲームを停止したタイミングでリセットされてしまいます。手間をかけて編集したのに、実行中だったせいでリセットされちゃった!……となると悲しいので、シーンを編集する際はエディタが実行中でないかどうか気を付けましょう。

2 マテリアル

さて、壁ができて、ボールが無限に落下することはなくなりました。しかし、壁・ボール・地面の色が同じなので、少し見づらいです。

オブジェクトに色を付けていきましょう。オブジェクトの見た目を設定するためには、マテリアルというものを使います。

マテリアルを作成するには、Projectウィンドウの適当な階層で右クリックして、 Create > Materialを選択します。

image

とりあえずここではGroundという名前にしてみました。作成したマテリアルを選択して、Inspectorを見てみます。

image

これがマテリアルの設定画面です。いろいろありますが、とりあえずわかりやすいところとして、色を変更します。Albedoと書かれた欄の白いボックスを押して、色を変更します。

変更出来たら、このマテリアルをシーン内のPlaneにドラッグ&ドロップしてあげましょう。

image

同じ要領で壁とボールにも色を付けてみました。だいぶ見やすくなりましたね!

せっかくなので壁を増やしてみましょう。

image

3 要素を増やす

さて、かなり体裁が整ってきました。次のステージとして、ここにゲームとしての面白味が欲しいところです。たとえば、当たるとゲームオーバーになる危険な壁とか……。

Cubeを追加して、赤いマテリアルを設定します。いかにも危険な感じが出てきました。

image

次に、このCubeに当たるとゲームオーバーになる性質を与えましょう。 スクリプトDangerを作成して……

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Danger : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log("ゲームオーバー!");
    }
}

こんな感じにしてあげます。 OnCollisionEnterは、物体が別の物体と衝突したときに呼び出されるメソッドです。

そしてDebug.Log()は、Consoleウィンドウにテキストを出力するメソッドです。

このスクリプトをCubeに取り付け、ボールで体当たりしてみましょう。

image

Consoleウィンドウに「ゲームオーバー!」と出力されました。

このままだと味気ないうえ、そのままゲームを続けることができてしまいますね。ゲームオーバーになったらリスタートするように変更しましょう。

private void OnCollisionEnter(Collision collision)
{
    Debug.Log("ゲームオーバー!");
    //現在のシーンを再読み込みする
    UnityEngine.SceneManagement.SceneManager.LoadScene(gameObject.scene.name);
}

これで再スタートするようになります。

あとはこのCubeをいろいろ複製して……

image

うっかりぶつかりそうな場所に置くのもよし、プレイヤーにやさしい配置にするのもよし……ここはレベルデザイナーとしてのウデが試されるところです。配置を工夫して、楽しんでもらえるようなステージにしてみましょう!

⚠️ **GitHub.com Fallback** ⚠️