SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Unity 2Dゲーム開発

速習 Unity 2Dゲーム開発
~第13回 シーンの移動処理

速習 Unity 2Dゲーム開発 第13回

  • X ポスト
  • このエントリーをはてなブックマークに追加

2面目の作成

sceneの複製

 2面目を作成するベースとして最初に作成したsceneを利用します。ProjectウィンドウのScenesを選択し、gameScene上で右クリックから「Show in Explorer」を選択します。

エクスプローラーで開く
エクスプローラーで開く

 エクスプローラーでgameScene.unityをコピーしてgameScene002.unityを作成します。Unityのエディタに戻ると、以下の画像のようにリロードを促されますので「Reload」をクリックします。

リロードして追加したsceneを読み込む
リロードして追加したsceneを読み込む

 シーンが新たに読み込まれました。

シーンが一つ追加された
シーンが一つ追加された

 このままではscene名がすべて表示されず、どちらがgameScene002か分かりません。このような場合、Projectウィンドウの右下のスライダーを右端に動かすことで各Sceneを大きく表示され、シーン名が読めるようになります。

スライダーを右端に移動
スライダーを右端に移動

 またスライダーを左端に動かすことで、一覧表示することができます。

スライダーを左端に移動
スライダーを左端に移動

2面目の編集

 1面目と同じでは、sceneが変更されたのかどうか分からないため、2面目を少し変更します。違いがわかれば良いので、どのように変更しても構いませんが、今回は下記画像のように床を1つ追加してみました。

gameScene002を編集
gameScene002を編集

プログラムの変更

 ターゲットのハムスターを捕まえた際に2面に移動することにします。CharactorManager.csのOnCollisionEnter2Dメソッドを以下のように修正します。

2面への移動処理を追加
public void OnCollisionEnter2D(Collision2D col)
{
    // hamsterに触れた場合は削除
    if (col.gameObject.name == "hamster")
    {
        this._collisionList.Remove(col.gameObject);
        Destroy(col.gameObject);

        // 2面に移動
        if (Application.loadedLevelName == "gameScene")
        {
            Application.LoadLevel("gameScene002");
        }
    }
    else if (col.gameObject.name == "ground" || col.gameObject.name == "floor")
    {
        this._collisionList.Add(col.gameObject);

        this._isJumping = false;
    }
}

 面の移動処理が記述場所がCharactorManagerで相応しいのかというのは今後の課題としておきます。

 処理としてはApplication.loadedLevelNameプロパティで現在のシーン名を取得しています。シーン名が一面(gameScene)であれば、Application.LoadLevelメソッドでシーンを変更します。変更するシーン名を引数で渡すことができます。

 ただし、このままでプログラムを実行すると以下の画像のようなエラーが発生し、シーンの変更ができません。

このままではシーンの変更ができない
このままではシーンの変更ができない

 gameScene002がbuild settingsに追加されていないため、シーンが移動できないようです。それではbuild settingsを変更していきましょう。

次のページ
build settingsの変更

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習 Unity 2Dゲーム開発連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8399 2015/03/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング