【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でシーンが追加できます
必要なシーンは全て登録しないとシーンの移動ができません
妖夢

 

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

 

気軽にコメントをどうぞ!

この記事に関すること冬月に聞きたいこと等、小さいことでもコメントしていただける嬉しいです。
冬月に直接連絡したい方は下のお問合せフォームをお使いください。(メール送信されます)

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。
※メールアドレスは公開されることは有りません。


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

Android | iOS | PC | Unity | ゲーム製作の関連記事