![見出し画像](https://assets.st-note.com/production/uploads/images/29865195/rectangle_large_type_2_cfc11913168bdf14e890fa7872c71182.png?width=1200)
Chapter16 ボタンを押したら画面が切り替わるプログラム
最近どんどんタイトルが雑くなっていますが、今回もゲームエンジンの『Unity』を使った『ADVゲーム』制作の続きをやっていこうと思います。
本企画の初回はこちら↓
前回、『ADVゲーム』では必需となる、ストーリーの分岐をプレイヤーに選択させるためのボタンを用意したが、この段階では押したところで何も起こらない。
そこで今回は、『ボタンが押されると画面が切り替わる』というようなプログラムを組んで、その機能をボタンに実装させるところまでやろうと思う。
ちなみに、『Assets』フォルダーの中には『Scenes』というフォルダーがあらかじめ用意されており、最初からはいっている『SampleScene』というのが現在編集をしている画面である。
分かりやすいように今回はこれを『FirstScene』と書き換えておこう。
左上の『File』から名前を付けて保存をすると、現状をコピーして新しいSceneを作成することが出来る。レイアウトを使いまわせるので、新規で作成するより楽だ。
『SecondScene』では玄関のイラストを風呂のイラストに変更する。
これでシーンが2つ用意できた。
では次に、この2つのSceneを扱うために、『File』の『BuildSetting』を開き2つのSceneを追加する。
あとは『風呂』と書かれたボタンが押されたときに『FirstScene』から『SecondScene』に切り替わるようなプログラムを用意すれば良い。
プログラムを組む際には、『Asset』フォルダーの中で右クリックをし、『C#Script』というものを選択する。
するとこのように名前を変更できる状態でスクリプトのアイコンが表示されるので、分かりやすい名前を付けて確定する。
作成されたスクリプトをダブルクリックすると、このように『VisualStudio』が立ち上がり、『Unity』用に作られた必要最低限のコードが現れるので、ここに自分が欲しい機能を書き足していくことになる。
それではまず、今回は『Unity』に備わっている『Scene』という機能と『UI』の機能を利用するプログラムを組むので、冒頭に
『using UnityEngine.SceneManagement;』
『using UnityEngine.UI;』
という文言を追記しておく。
それでは、『public class FromFirstToSecond : MonoBehaviour』の括弧の内側に、ボタンを押した際の処理を書いていく。
『FromFirstToSecond』class内を一度空にして、
『public class OnClick()』
というように、『OnClick』という名前のメソッドを作る。
そして、このメソッドが読まれた際の処理として、
『SceneManager.LoadScene("SecondScene");』
を記述する。
これは冒頭で記述した『SceneManager』の中にある『LoadScene』という処理方法で、そのあとの『("")』の中に書き込んだSceneをロードすることが出来る。
これで、スクリプトは完成。
今度は、前回作った『Button』オブジェクトの設定をする。
『お風呂』と書かれた『Button』オブジェクトを選択して『Inspector』viewの一番下の部分を見てみると、『On Click()』と書かれた部分があり、その中身には『List is Enpty』という表記が見られる。
ボタンが押されたときの処理の名前が『On Click』。処理の内容が『今は何も無い』という意味である。
『+』ボタンを押し、丸いちょぼを押すと『Object』の選択が出来るので、ここに自分自身である『Button(1)』オブジェクトを追加する。
続いて『No Function』と書かれた部分をクリックすると先ほど作成したスクリプトの名前が表示されており、さらにスクリプト内で作った『OnClick』メソッドが選択できるので選択する。
これで、『お風呂ボタン』とスクリプトが結びついたことになる。
再生ボタンを押してから『お風呂』をクリックすると、『お風呂パート』へ移動することが出来た。
おっと、気づいたら日付が変わっている・・・
ということで今回はここまで。
ご閲覧ありがとうございました。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?