Unity入門講座|2Dマップでドアに当ってシーン移動を学ぼう

Unity
うさタブ
うさタブ

今回はUnityでドアに触れたらシーン移動について勉強するッピ!

ユウキ
ユウキ

ドアのシーン移動?

アイカ
アイカ

まだ習ったことないわ!

うさタブ
うさタブ

シーン移動は、
Unityの基礎の基礎ッピ!

うさタブ
うさタブ

これからこの2Dマップでドアに当ってシーン移動を一緒に勉強して行くッピよ~

スポンサーリンク
スポンサーリンク

2Dマップでドアに当ってシーン移動について学ぼう

必要なもの

うさタブ
うさタブ

まずは必要なものを用意するッピ!

  • Unity
  • Windows または Mac のパソコン

が必要ッピよ~!

うさタブ
うさタブ

まだ Unity をダウンロードしてない人は

↓ の記事を参考に必要なものをインストールするといいッピ!

移動するマップを用意する

うさタブ
うさタブ

さっそく

を用意するっぴ!

うさタブ
うさタブ

マップの作り方とキャラ移動は、下の記事を参考にするっぴよ~!

ユウキ
ユウキ

オッケー!

当たり判定の有無を確認する

うさタブ
うさタブ

マップの

建物や小物

当たり判定はあるッピか?

うさタブ
うさタブ

当たり判定がない場合

コンポーネントを追加→Tilemap

で追加できるッピよ~!

ユウキ
ユウキ

このモノが緑の線に囲まれていたら

当たり判定がついている証拠なんだよな?

うさタブ
うさタブ

そのとおりッピ!

アイカ
アイカ

大丈夫!
準備まんたんよ

シーンのビルド設定を忘れずに!

うさタブ
うさタブ

みんないいかんじに

マップがつくれてるッピね~

うさタブ
うさタブ

それじゃあ

シーンのビルド設定もできてるッピか?

アイカ
アイカ

えっと、ビルド設定ってなんだったかしら・・・

ユウキ
ユウキ

おれも忘れちまったようさタブ

うさタブ
うさタブ

シーンのビルド設定は、

ゲームにこのシーンを使うよ!

とお知らせするものだッピよ~~

ユウキ
ユウキ

確かにそんなようなものだった気も・・・

ていうかそもそも

シーンってどうやって追加するんだっけ?

アイカ
アイカ

そうね、できればそこから教えて欲しいわ

うさタブ
うさタブ

それじゃあ、
新しいシーンを追加するところからやっていくッピ!

シーンの追加

うさタブ
うさタブ

シーンは、アセットで右クリック

作成→シーン

でつくれるッピよ

シーンをビルド設定する

うさタブ
うさタブ

やり方は、

ファイル→ビルド設定

うさタブ
うさタブ

移動したい先の新しいシーンを

ビルドに含まれるシーンへドラッグ&ドロップ

するッピ!

ユウキ
ユウキ

できたぜうさタブ!

アイカ
アイカ

わたしもバッチリだわ

うさタブ
うさタブ

2人ともよくできてるッピ!
それではさっそく、ドアからシーン移動するやり方をやっていくッピ!

ドアにシーン移動するプログラムを設定する

うさタブ
うさタブ

ドアからシーン移動するやり方をやっていくッピ!

うさタブ
うさタブ

まずは

扉のオブジェクト

を設定するッピ!

当たり判定を追加する

うさタブ
うさタブ

扉のオブジェクトに当たり判定を追加するッピ!

うさタブ
うさタブ

コンポーネントを追加→Tilemap→Tilemap Collider 2D

で当たり判定を追加するッピ!

ユウキ
ユウキ

2つ一気につくれるのか!

アイカ
アイカ

すごいわねっ

シーン移動のプログラムを追加

うさタブ
うさタブ

次にシーン移動のプログラムを追加するッピ!

うさタブ
うさタブ

アセットの部分で右クリックをして

作成→C#スクリプト

でつくることができるッピ!

うさタブ
うさタブ

名前を

Scene_change

と名付けるっピよ~!

うさタブ
うさタブ

↓の文をコピーして

using UnityEngine;
using UnityEngine.SceneManagement;

public class Scene_change : MonoBehaviour
{

    private void OnCollisionEnter2D(Collision2D other)
     {
        if (other.gameObject.CompareTag("Player"))
        {
         SceneManager.LoadScene("after");//移動先のシーンの名前を必ずafterにしてください!
        }
    }

}

と入力→保存するッピ!

うさタブ
うさタブ

このプログラムは

usingつかいます UnityEngineunityの機能を;
using
UnityEngine.unityの機能のうちSceneManagementシーン切り替えを使います;

public共同の classクラスです Scene_change名前はシーン・チェンジ : MonoBehaviourunityのクラスです
{
privateこの場だけの void関数です OnCollisionEnter当たり判定を取得します2D(Collision2Dこの物体以外の otherものを判別)
{
ifもし (otherこの他の.gameObjectゲームオブジェクトが触れて.CompareTagかつそれが(“Player”プレイヤータグを持っていたら))
{
SceneManagerシーンを移動して.LoadScene移動先は(afterアフターです);//移動先のシーンの名前を必ずafterにしてください!
}
}
}

という意味になるッピよ~

アイカ
アイカ

こういう意味だったのね!

ユウキ
ユウキ

なるほどなー

スプリクトを当たり判定に仕込む

うさタブ
うさタブ

当たり判定にプログラムを仕込むッピ!

当たり判定を作った場所に、スプリクトをドラッグ&ドロップするッピ!

テスト用のキャラクターを追加をする

うさタブ
うさタブ

最後はテストプレイッピ!
衝突判定のために

歩けるキャラクターとその画像が必要だっピ!

うさタブ
うさタブ

今回は

ぴぽや倉庫様

からマップチップ画像お借りしたッピ!

ぴぽや倉庫様
アイカ
アイカ

ここからダウンロードさせてもらえばいいのね!

キャラクターを画像をゲームに組込み

うさタブ
うさタブ

キャラクター画像が用意できたら

Assets部分へドラッグ&ドロップするッピ!

うさタブ
うさタブ

Assetsのキャラクターをヒエラルキーに向かって

ドラッグ&ドロップして画像を登録するッピ!

うさタブ
うさタブ

このとき「ユニット毎ピクセル数」を

マップチップやゲームに合わせて設定するッピ!

今回は「32」にするッピよ~

アイカ
アイカ

ユニット毎ピクセル数」を「32」ね!

できたわ

うさタブ
うさタブ

次はヒエラルキーのキャラクター画像を選んで

レイヤー順序」を他の建物や小物より数値を高くするッピ!

うさタブ
うさタブ

こうすることで、主人公キャラクターが他の小物や建物にかぶらないようにできるッピよ~!

ユウキ
ユウキ

オッケー

キャラのレイヤー順序の数字を他の建物より高くするんだな

キャラクターを移動するプログラム

うさタブ
うさタブ

次はキャラクターを動かすプログラムを書いていくッピ!

うさタブ
うさタブ

Assetsで右クリックをして

作成→C#スクリプト

でプログラムをつくって行くッピ!

うさタブ
うさタブ

名前を

chara_move

にして、ダブルクリックで編集画面にいくッピよ~

using UnityEngine;

public class chara_move : MonoBehaviour
{
     private float speed = 0.1f; //floatは小数点

    void Update()
    {
        Vector2 pos = transform.position;

        if (Input.GetKey(KeyCode.RightArrow))
        {
            pos.x += speed;//右に移動
        }
        else if (Input.GetKey(KeyCode.LeftArrow))
        {
            pos.x -= speed;
        }
        else if (Input.GetKey(KeyCode.UpArrow))
        {
            pos.y += speed;
        }
        else if (Input.GetKey(KeyCode.DownArrow))
        {
            pos.y -= speed;
        }

        transform.position = pos;
    }
}
うさタブ
うさタブ

詳しくは、下の記事で確認するッピ!

うさタブ
うさタブ

できたプログラムを
画像にドラッグ&ドロップするッピ~!

うさタブ
うさタブ

キャラの質量と当たり判定を追加するッピ!

まずはインスペクターの

コンポーネントを追加」→Physicks 2D→Capsule Collider

を選択して当たり判定を追加するッピ!

うさタブ
うさタブ

つぎは質量を与えるッピ!

インスペクターの

コンポーネントを追加」→Physicks 2D→Rigidbody 2D

を選択するッピ!

うさタブ
うさタブ

重力スケール
Constaintsの下にあるZ
回転を固定チェック

をいれたら準備満タンッピ!

アイカ
アイカ

この「Zに✓」を入れればいいのね!

ユウキ
ユウキ

重力スケールは0」と・・・

うさタブ
うさタブ

最後に、インスペクターの

タグ→「Prayer

を選択するッピ!

うさタブ
うさタブ

このプレイヤーを選ぶことて

プレイヤーが○○したときに、XXする~ということができるようになるッピ!

テストプレイ

ユウキ
ユウキ

できた~~

アイカ
アイカ

やったねユウキくんっ!

うさタブ
うさタブ

次は物体に触れたら移動ではなく、
エリア内に入ったら移動をするをやってみるッピ!

学習のまとめ

using UnityEngine;
using UnityEngine.SceneManagement;

public class Scene_change : MonoBehaviour
{

    private void OnCollisionEnter2D(Collision2D other)
     {
        if (other.gameObject.CompareTag("Player"))
        {
         SceneManager.LoadScene("after");//移動先のシーンの名前を必ずafterにしてください!
        }
    }

}
using UnityEngine;

public class chara_move : MonoBehaviour
{
     private float speed = 0.1f; //floatは小数点

    void Update()
    {
        Vector2 pos = transform.position;

        if (Input.GetKey(KeyCode.RightArrow))
        {
            pos.x += speed;//右に移動
        }
        else if (Input.GetKey(KeyCode.LeftArrow))
        {
            pos.x -= speed;
        }
        else if (Input.GetKey(KeyCode.UpArrow))
        {
            pos.y += speed;
        }
        else if (Input.GetKey(KeyCode.DownArrow))
        {
            pos.y -= speed;
        }

        transform.position = pos;
    }
}
学習のまとめ
  • マップチップを用意する
  • キャラクターを用意する
  • マップチップの当たり判定の確認
  • 空のオブジェクトを製作
  • 当たり判定を追加
  • リジッドボディを追加
  • プログラムを追加する
  • プログラムを空のオブジェクトへアタッチ
  • テストプレイ

うさタブ
うさタブ

次は物体に触れたら移動ではなく、
エリア内に入ったら移動をするをやってみるッピ!

スポンサーリンク

どうしてもわからない、そんなときは?

ユウキ
ユウキ

うさタブ!

オレ、もっと本格的にゲームが作りたいんだ

アイカ
アイカ

私もだわ!

もっとたくさん実用的なコードを

学ぶことってできないかしら?

うさタブ
うさタブ

おお、2人ともやる気ッピね!

ゲームの作り方を学ぶなら、コレとかどうッピか?


うさタブ
うさタブ
Udemy」テレビでも有名な動画教材
人気の機械学習からUnityゲーム講座まで選び放題ッピ!

うさタブ
うさタブ

2DアクションRPG脱出ゲーム

3Dゲーム制作講座まで

買い切り講座だからいつでも勉強し放題ッピよ~!

ユウキ
ユウキ

お!いいじゃん!

アイカ
アイカ

あと、どこか素敵な素材を売っているところはないかしら? 公式の素材販売だと、クレカ支払いしかなくて・・・

ユウキ
ユウキ

小学生じゃクレカで支払えないぜ~

うさタブ
うさタブ

ゲームの素材を買いたいなら、

DLsiteBoothとかどうッピか?

うさタブ
うさタブ

素敵なドット絵や音楽素材がいっぱい売ってるッピ!

うさタブ
うさタブ

しかもUnityアセットストアと違って

クレカ支払いじゃなく、コンビニ支払いができるのもポイントッピ!

ユウキ
ユウキ

すげーカッコいい素材がいっぱいある!

アイカ
アイカ

わたしもさっそくチェックしてみようかな♪

スポンサーリンク
Unityプログラミング
学んで遊んでジャンケンポン!
タイトルとURLをコピーしました