Unity<RetryButton>~前のシーンへ戻る~
間違っている場所あったら優しく教えてね
アクションゲーム、パズルゲームで前の画面に戻りたいと思った。
Stageをクリアした時、失敗した時にもう一度同じStageをするためのRetryButtonを作成する方法。
GameEngine.cs
public class GameEngine : MonoBehavier ( ) {
public static string NowScaneName;
NowSceneName = SceneManager.getActiveScene( ).name;
public static string getSceneName( ){
return NowSceneName;
}
}
解説
- static変数を用いることでsceneが変更されても値はその変数に入力されたままになる。
- SceneManager.getActiveScene( ).name;で現在のSceneの名前を取得できる。
- getSceneNameメソッドをstaticにすることで外部からメソッドを使える。このメソッドの戻り値を現在のシーンの名前にしている。
RetryButton.cs
public string ReturnSceneName;
public void PushRetryButton ( ){
ReturnSceneName = GameEngine.getSceneName( );
SceneManager.LoadScene( ReturnSceneName );
}
解説
- GameEngineクラスのgetSceneNameメソッドを呼び出して変数をえる。
- LoadScene( ) でシーン遷移をする。
コメント
- 変数はsceneを変えてしまうと中身が失われてしまうため、static変数を用いた。
- メソッドに戻り値を与えてstatic変数を取り出した。
- RetryButtonは多用するので、活躍しそうだ。