見出し画像

3-2タイトルからゲームへ遷移【Unityゲーム開発の基礎】作って学ぶブロック崩し

ブロック崩しを作りながらUnityを学んでいこう!
フェーズ1で「ブロック崩しの骨格」を作り、
フェーズ2ではその「見た目をかっこよくする」ことができました。

フェーズ3の目標は「タイトルやゲームオーバー・ゲームクリアの画面を作る」です。これらを追加することでかなりゲームっぽい雰囲気になるのではないでしょうか。

前回はタイトル画面を作りました。
今回はタイトル画面のボタンが押されたらゲームがスタートするその仕組みを作っていきます。


タイトル画面用のスクリプトを追加

まずはタイトル画面オブジェクトにスクリプトを追加します。
Projectウィンドウから Assets/Scrits フォルダを右クリックして Create → C#Script と選択してスクリプトファイルを作成します。
名前は「UICanvasBehaviour」としました。
タイトル画面のInspectorウィンドウへドラッグして紐づけます。

UICanvasBehaviour


敵グループのスクリプトを追加

複数ある敵を1つにまとめるため EnemyUnit というオブジェクトを作りその下に Enemy オブジェクトを配置しています。
EnemyUnit にもスクリプトを追加しておきます。


ゲーム全体を制御する為のスクリプトを追加

ゲーム全体を制御する為のオブジェクトを追加

タイトルから画面を切り替えてゲームをスタートさせるなどのコントロールをするためのオブジェクトを作成します。このオブジェクトは目に見えるものは1つもありませんがスクリプトだけを持って全体を制御するものです。

Hierarchy を右クリックして Create Empty でオブジェクトを作成。
「MainManager」という名前にしました。

MainManager


ゲーム全体を制御する為のスクリプトを追加

続けてスクリプトを追加します。
Projectウィンドウから Assets/Scrits フォルダを右クリックして Create → C#Script と選択してスクリプトファイルを作成します。
名前は「MainManagerBehaviour」としました。
MainManagerの Inspector ウィンドウへドラッグして紐づけます。

MainManagerBehaviour


制御オブジェクトと各オブジェクトを関連付ける

タイトル画面のボタンが押されたら、MainManager はGameTitleを非表示にして Player や Ball や Enemy を表示させるなどの仕事をしたいので、MainManagerは Player などの存在を把握している必要があります。

そこでMainManagerBehaviourへ以下のようにコードを追加します。

public class MainManagerBehaviour : MonoBehaviour
{
    public UICanvasBehaviour gameTitle;
    public PlayerBehaviour player;
    public BallBehaviour ball;
    public EnemyUnitBehaviour enemyUnit;
}

メンバ変数として制御したいオブジェクトのスクリプトを追加しました。
publicなメンバ変数を追加すると Inspectorウィンドウにメンバ変数が表示されるようになります。

さらにHierarchyウィンドウからオブジェクトをドラッグ&ドロップすることでメンバ変数にオブジェクトをセットすることができます。

変数へオブジェクトをセット


ボタンが押されたらスクリプトを実行する

MainManagerにボタンが押された時のコードを作る

スタート画面でボタンが押されたら、スタート画面を非表示にして、ボールやプレイヤーや敵を表示させるという動きを作ります。

MainManagerBehaviourに以下のメソッドを追加します。

    public void OnNewGameButtonClicked()
    {
        gameTitle.gameObject.SetActive(false);
        player.gameObject.SetActive(true);
        ball.gameObject.SetActive(true);
        enemyUnit.gameObject.SetActive(true);
    }


ボタンを押したらメソッドを呼び出す

GameTitleオブジェクトの中に作ったボタンの Inspector ウィンドウを見てみると On Click () という項目があります。 

「+」ボタンをクリックして、

onClick

MainManagerオブジェクトをドラッグ&ドロップでセットすると、さっき作ったメソッドを選ぶことができます。

onClick

これでタイトル画面のボタンが押されるとOnNewGameButtonClickedメソッドが呼ばれるようになります。


これが今回の成果です。


つづく


次回:3-3ゲームオーバー画面を作る


いいなと思ったら応援しよう!

この記事が参加している募集