お久しぶりです ブログの更新が滞ってしまいました これから少しずつ更新回数が増やせればと思っています |
といっても不定期になりがちだけどね 待っている人がいるかどうか不安だけど のんびり待ってくれると嬉しいわ |
時間が空いてしまったので 今回は仕切り直して別の話題を 書きたいと思うわ |
仕事で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でシーンが追加できます 必要なシーンは全て登録しないとシーンの移動ができません |
これで 画面のクリック処理とシーンの遷移処理ができました 次回は画像データ周りの設定を書いていこうと思います |