【Unityでアプリ制作】Sceneをランダムに遷移させてみた
JABです!
今日は備忘録を。
先月リリースした↓のアプリについて
実装した内容を残しておきます。
Sceneをランダムで遷移させたい
これ、実際は「1つのシーンで問題だけ変えていく」ってことをやりたかったんですが、やり方がわからなかったので1問1シーンで割り当てて作ったんです。
Sceneの遷移については「SceneManagers」というスクリプトで制御しています。(いろんな人のブログや参考書などを読んだらみんなそうやってたので)
ひとまずそのときに実装したコードの抜粋は↓
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneManagers : MonoBehaviour
{
public void DirEasy()
{
List<string> EasyScene = new List<string>(){
"N1",
"N2",
"N3",
"N4",
"N5",
"N6",
"N7",
"E1",
"E2",
"E3",
"E4",
"E5",
"E6",
"E7",
"S1",
"S2",
"S3",
"S4",
"S5",
"S6",
"S7",
"W1",
"W2",
"W3",
"W4",
"W5",
"W6",
"W7",
};
var EasyRandom = EasyScene[Random.Range(0,EasyScene.Count)];
SceneManager.LoadScene(EasyRandom);
}
}
かなり強引にやっていますが、本当にどうやればいいかわからなかったので・・・
(もっといい方法があったら教えてくださいm(_ _)m)
ということで、シーンを遷移させる場合、
using UnityEngine.SceneManagement;
↑を記載するのを忘れずに!
実際にやったことは、まずはシーン名を全て「EasyScene」というリストにします。↓
List<string> EasyScene = new List<string>(){
"N1",
"N2",
"N3",
"N4",
"N5",
"N6",
"N7",
"E1",
"E2",
"E3",
"E4",
"E5",
"E6",
"E7",
"S1",
"S2",
"S3",
"S4",
"S5",
"S6",
"S7",
"W1",
"W2",
"W3",
"W4",
"W5",
"W6",
"W7",
};
そして、それを「EasyRandom」という変数にして、リストの中からランダムに拾ってきたシーンを代入しています。↓
var EasyRandom = EasyScene[Random.Range(0,EasyScene.Count)];
SceneManager.LoadScene(EasyRandom);
そしてLoadSceneで先程の「EasyRandom」へ遷移させて終了!
これをEasy、Normal、Hardで作り分けて、3つのモードで機能するようにしました。
いいなと思ったら応援しよう!
サポートしていただけると嬉しいです!!
Web関連、育児関連、ビジネス関連など情報を発信していくために使わせていただきます。