14日目 Unity 全体のシーンを管理する(ボタンによるシーンの行き来、クエストクリア時のシーン移動)
<全体のシーンを管理する>
1.まずは新しいSceneを作成し、Buttonを追加する(Townの画面)
このButtonのサイズを他のButtonと一致させたいときは、Button内のRect Transformをコピーして貼り付ける(これを応用すれば、Textなどのサイズも合わせられる)
2.スクリプトを作成する
A
public void LoadTo(string sceneName) //()のシーンに飛ぶ
{
SceneManager.LoadScene(sceneName);
}
これをEmptyに追加し、StageUIのボタンに追加(詳細は6日目を参照)、その中から今回新しく作った関数を選択。(OnClickで)
Aの関数を設定すると、その下に入力する部分がある。そこに飛ぶ先のシーン名を入力しておく。
この状態でボタンを押してもエラーが出る。
3.Build Settingで作成したシーンを追加する
4.クエストクリア時にシーンの移動をするスクリプトを作成する
B
public SceneTransition sceneTransition; //Aのスクリプトを変数で取得する
if (encountTable.Length <= currentStage) //クエストクリア時の処理
{
Debug.Log("クエストクリア");
//クリアの処理
QuestClear();
}
void QuestClear()
{
sceneTransition.LoadTo("Town"); //AのLoadTo関数を使用する
}
<クエストクリアの演出>
1.さらに新しいSceneを作成(タイトル画面)
2.ボタンを配置し(今まで学んだことを応用し、Town画面へ飛ぶように)、ステージクリアのTextを追加する
3.StageUIのスクリプトの編集
C(StageUIを管理するスクリプト)
public GameObject stageClearText; //非表示にしたいときはGameObjectで取得する
private void Start()
{
stageClearText.SetActive(false);
}
public void ShowClearText()
{
//ここで進むボタンを非表示にし、ステージクリアのテキストと戻るボタンのみ表示する
stageClearText.SetActive(true);
nextButton.SetActive(false);
toTownButton.SetActive(true);
}
D(クエスト全体を管理するスクリプト)
void QuestClear() { // クエストクリアと表示する // 街に戻るボタンのみ表示する stageUI.ShowClearText();
}
感想
今回の学習でゲームの進行に関する部分の設定はほぼ終わりました!88888888
ただ、このままだととてもではないですがゲームの画面には見えないため、次回からは画面の演出や背景といった魅せる部分の設定方法を学んでいきます!
ですが、ここまで学習しておいてなんですが、やはり今までの復習を兼ねて1から復習するべきなのかなと思います。。。というのも、わかっているつもりでも自分の力になっていない部分も多く残っており、今後ゲーム開発をする際にもっと学んでおけばよかったと後悔しないよう、基礎をしっかりと身につけておきたいからです。悲観ではなく、将来の自分の力にしたいという希望からですね( ´∀` )
ここまででUnityでのゲーム開発第一期が終了ということになりそうです。
勉強時間合計:25.5h