今回は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;
}
}
- マップチップを用意する
- キャラクターを用意する
- マップチップの当たり判定の確認
- 空のオブジェクトを製作
- 当たり判定を追加
- リジッドボディを追加
- プログラムを追加する
- プログラムを空のオブジェクトへアタッチ
- テストプレイ
次は物体に触れたら移動ではなく、
エリア内に入ったら移動をするをやってみるッピ!