実現したいこと
UnityのゲームでシングルトンなGameManagerを実装して、ボタンクリックによるシーンの遷移を行わせる。
前提
Unityで2Dのゲームを習作として作成しています。
Titleシーン⇔Stage_Selectシーン⇔Stageシーン(複数)
という構成を想定しています。
各シーンにボタンを配置し、クリックによりシーンの遷移を行わせます。
発生している問題
現状、ボタンクリック時のイベントは同シーンに配置しているGameManager(スクリプトをアタッチした空のオブジェクト)をアタッチし、関数を選択するものと理解しています。
シングルトンなGameManagerを実装した場合、1シーン以外はGameManagerがシーンに存在しないため上記の方法は使えない認識です。どのような機能を使って、どのような設計方針で実装するのが良いでしょうか
。
今回の実現したい内容の場合別にシングルトンを使わなくても実装したい機能は出来るのではないでしょうか。
各シーンに空のゲームオブジェクトを作成し、名前をGameManagerとし、GameManagerをアタッチします。ButtonコンポーネントのOnClick欄にGameManagerをアサインし関数を呼び出しします。
コメントありがとうございます。説明が不足していました。
質問しているシーン遷移についてはシングルトンであることは必須ではないと思います。
各シーンにGameManagerを配置するパターンは認識しております。今回は別の理由によりGameManagerがシングルトンである必要があり、各シーンにGameManagerが配置出来ない、となったときにどうすればよいか分からず質問した次第でした。
シーン遷移に関係するスクリプトとGameManagerで行う処理を分けて見てはどうでしょうか。
GameManagerでシーン遷移させたいのならば、[SerializeField]を使い別のスクリプトの関数参照で実装するのが良いでしょう。
回答1件
あなたの回答
tips
プレビュー