
今回は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 UnityEngine;
using UnityEngine.SceneManagement;
public class Scene_change : MonoBehaviour
{
private void OnCollisionEnter2D(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
を選択するッピ!


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

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