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

うさタブ
うさタブ

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

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

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

ユウキ
ユウキ

うーん・・・

やっぱり、どうしてこーなるか良くワカンナイな~

説明を聞いたすぐはわかったつもりなんだけどさ

アイカ
アイカ

そうね・・・わたしも

すぐに復習できる環境じゃないから

宿題とか困っちゃうわ・・・

ユウキ
ユウキ

他に気軽に教えてくれる先生とかいるといいんだけどな~

うさタブ
うさタブ

フムフム!

そんなときは、プログラミング講座がオススメッピね~

アイカ
アイカ

そんなのあるのか?

ていうかドコいけばいいんだよ

うさタブ
うさタブ

それなら、やっぱり一番安心自宅でできる動画教材がよいッピ!

うさタブ
うさタブ
テレビCMでも話題の有名教材
Udemyとかどうッピか?

 

うさタブ
うさタブ
Udemyは、HTMLからJavaScript
人気の機械学習からUnityゲーム講座まで選び放題ッピ!

うさタブ
うさタブ

買い切り講座だから
いつでも勉強し放題、動画制作や難しいマーケティングなんかも勉強できるッピ~!

ユウキ
ユウキ

へえ~、こんなのがあるのか

うさタブ
うさタブ

ちびっこのみんなは、キュレオプログラミング教室がオススメッピ!

実際の教室で自分以外の同い年と一緒に勉強することで、自分も負けないゾ!と思えておサボりを防ぐことができるッピ!
さらに、クラスのみんなと差をつけてすごいプログラムが作れちゃうッピ

教室名 対象 学習言語 教室場所 無料体験・カウンセリング
Udemy 学生~社会人 Unity
HTML/CSS
JavaScript
MySQL
Python等
オンライン講座
コース買い切り
講座によってサンプル○
Unityゲーム講座アリ
 

「QUREOプログラミング教室」

小学2年生〜中学3年生 Scratch 全国各地
2500教室
無料体験◯
【LITALICOワンダー】 小学1年生〜高校生 Scratch
Unity C#
HTML / CSS
JavaScript
東京都,神奈川,埼玉県,千葉
オンライン
無料体験◯
3Dプリントなどの講座によっては別途料金

ユウキ
ユウキ

よーし、ちょっと体験だけでもやってみるか!

アイカ
アイカ

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

スポンサーリンク

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

ユウキ
ユウキ

うーん・・・

やっぱり、どうしてこーなるか良くワカンナイな~

説明を聞いたすぐはわかったつもりなんだけどさ

アイカ
アイカ

そうね・・・わたしも

すぐに復習できる環境じゃないから

宿題とか困っちゃうわ・・・

ユウキ
ユウキ

他に気軽に教えてくれる先生とかいるといいんだけどな~

うさタブ
うさタブ

フムフム!

そんなときは、プログラミング講座がオススメッピね~

アイカ
アイカ

そんなのあるのか?

ていうかドコいけばいいんだよ

うさタブ
うさタブ

それなら、やっぱり一番安心自宅でできる動画教材がよいッピ!

うさタブ
うさタブ
テレビCMでも話題の有名教材
Udemyとかどうッピか?

うさタブ
うさタブ
Udemyは、HTMLからJavaScript
人気の機械学習からUnityゲーム講座まで選び放題ッピ!

うさタブ
うさタブ

買い切り講座だから
いつでも勉強し放題、動画制作や難しいマーケティングなんかも勉強できるッピ~!

ユウキ
ユウキ

へえ~、こんなのがあるのか

うさタブ
うさタブ

ちびっこのみんな、キュレオプログラミング教室を受けて
自分以外の同い年と一緒に勉強することで、自分も負けないゾ!と思えて
おサボりを防ぐことができるッピ!
さらに、クラスのみんなと差をつけてすごいプログラムが作れちゃうッピ

先生やパパママにほめられて、学習効率が最高にグングン↑↑ッピよ~~♪

うさタブ
うさタブ

未来都市キュレオを舞台に、魅力的なキャラクターがたくさん登場する・ゲーム感覚で楽しく学べるプログラミング教室ッピ!

困ったことも先生に直接聞けるのが最高ッピ~!

うさタブ
うさタブ

全国2500教室もあるから、

きっとみんなの近くにも教室があるッピ。

公式サイト近くに教室があるかチェックしてみるとよいッピ!

ユウキ
ユウキ

なんだこれ! スゲーなっ

ゲームみたいにやってるうちに、自然と勉強できてるみたいな感じ?

アイカ
アイカ

そんなものがあるのねっ!

うさタブ
うさタブ

ロボットをプログラミングしてみるなら

LITALICOワンダーがオススメッピ!

JavaScriptも勉強できるッピよ~!

教室名 対象 学習言語 無料体験/教室場所
Udemy 学生~社会人 Unity
HTML/CSS
JavaScript
MySQL
Python等
オンライン講座
講座によってサンプル○
「QUREOプログラミング教室」
小学2年生〜中学3年生 Scratch 教室によって無料体験◯
全国各地の教室
【LITALICOワンダー】 小学1年生〜高校生 Scratch
Unity C#
HTML / CSS
JavaScript
無料体験◯
3Dプリントなどの講座によっては別途料金
東京周辺
オンライン

ユウキ
ユウキ

よーし、ちょっと体験だけでもやってみるか!

アイカ
アイカ

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

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