【Unityメモ書き1】シーン切り替え&画面タッチ処理

クロ

お久しぶりです
ブログの更新が滞ってしまいました
これから少しずつ更新回数が増やせればと思っています

といっても不定期になりがちだけどね
待っている人がいるかどうか不安だけど
のんびり待ってくれると嬉しいわ

霊夢
魔理沙

時間が空いてしまったので
今回は仕切り直して別の話題を
書きたいと思うわ

仕事でUnityを触る機会がありまして
それについてメモしたいことを
書いていこうと思います、詳しくは続きを読むからどうぞ!

妖夢

クロ

現在お仕事でUnityを使って
ゲームを作っています
1そこで自分が覚えておこうと思ったことを8回に分けて書いていこうと思います

さっそくだけど今回は
画面のタッチ判定処理とシーンの切り替えを
書いていこうと思うわ

霊夢
魔理沙

タッチ判定処理は
ゲームのタイトル画面で必要になるな
ボタン処理でも良いけど、タイトル画面って画面全体が判定な事が多いからな

シーン切り替えの処理は
各々の設計にもよるとは思うのですが、ゲームのシーンを
Unityのシーンで区切りたいときに使うと良いと思います

妖夢
クロ

しゅんげつは
タイトル、難易度設定、ユニット選択、バトル画面(メイン)、リザルト、ゲーム設定
と6つのシーンに分けて制作しました

あまり分けてしまうと、シーン切り替えでロードが入り
ストレスのもとになってしまうので
適度に入れるようにしたいわね

霊夢
魔理沙

さて、本題の画面タッチ処理にはいろうか
理の仕組みとしては、画面全体に透明なオブジェクトを配置して
それをクリックしたら判定を行う感じだな

1.Unityの判定させたいGameObjectにEventTriggerを追加する

上の操作で半分の操作が終わりました
これでEventTriggerを追加したGameObjectにクリックした判定が
取れるようになりました

妖夢

2.スクリプトにボタン処理を記述する

スクリプトに

	public void OnClick()		
	{		
	}
を用意する(関数名はなんでも良い)

クロ

次にクリックしたときに行いたい処理を
スクリプトに記述します
冬月はC#で書きました

タイトルシーンだとここに
シーン切り替えの処理を記述する感じかしらね
これは後で書くからちょっとまってね

霊夢

3.スクリプトを先程のGameObjectに登録する

魔理沙

登録って言っているが
作ったスクリプトをGameObjectに
ドラッグ・アンド・ドロップするだけだけどな

登録するGameObjectはなんでも良いのですが
全て同じGameObjectにしておくと取り回しが楽になります
冬月の主観となりますが……

妖夢

4.Optionに上記のスクリプトが書かれたGameObjectを登録しておく

クロ

スクリプトをGameObjectに登録するだけじゃ動きません
前に登録したEventTriggerにスクリプトを設定する必要があります
この工程でようやく画面クリックの処理が可能となります

PointerClickという項目ができていると思うので
ここの下の欄にスクリプトを登録したGameObjectを
右の欄にスクリプト名->関数名で設定できるはずよ

霊夢

魔理沙

これで記述した処理が
クリックされたときに
動作するようになるぞ

クリックしたときの処理を書いていきましょう
今回はシーンの切り替えをさせたいと思います
その前に一つ前もってやっておくことがあります

妖夢
クロ

シーンを2つ以上作っておく必要があります
ここではタイトルシーンと難易度選択シーンの
2つと仮定します

1.スクリプトにシーン遷移の処理を追加する

usingに

	using UnityEngine.SceneManagement;
	
を追加

シーン遷移はスクリプトから出ないとできないので
先程作ったスクリプトに追記していくわ
まずusingの追加ね

霊夢
	SceneManager.LoadScene("シーン名", 変更時の設定);
	
魔理沙

追加した関数にこの処理を追加するぞ
この一行だけでシーンの遷移処理は完了だな
第二引数に関してはオプション設定だけど、重要だぞ

第二引数はなくても動きますが
設定してないと、シーンの切り替えだけでシーンのデータは残ります
切り替え直すと前の状態のまま復帰することができます

妖夢
クロ 前の状態を残さずにシーン遷移したいときもあると思います
そういうときはLoadSceneMode.Singleを設定すると
前のシーン情報は削除されます
	public void OnClick()		
	{
		SceneManager.LoadScene("DifficultyScene", LoadSceneMode.Single);
	}
	

こんな感じになるわね
で、次にUnity側の設定をする必要があるわ
Unity側にシーンを登録する必要があるの

霊夢
魔理沙

下の画像のように
File → Build Settingsで
ゲーム全体の設定を変更できるぞ

この画面から
Add Open Sceneでシーンが追加できます
必要なシーンは全て登録しないとシーンの移動ができません

妖夢

クロ これで
画面のクリック処理とシーンの遷移処理ができました
次回は画像データ周りの設定を書いていこうと思います

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください