世界一簡単なステージセレクトのコード
自称ですけどねw
今日はスクールがあり、開発がすこぶる進みました。
ちなみにこれが今日の努力の結果です。
#今日の進捗と創作
— E'Dash@平成のエイリアン (@EdashUnityMMD) 2018年11月10日
今日でここまで来ました。
あと少しの工夫で...
先に公開しようかな? pic.twitter.com/jvdXKonOzQ
今回はこの動画の中でたぶん凄く簡単にできるステージセレクトの方法を友達の開発者「ポテト」に教えてもらい、実装してみました。
今まではキーボードで指定したキーを押してシーンをロードしていましたが、それだとどれから進めたらいいのかわからないし、ステージを増やしにくいです。
ですがこの方法を使えばいい感じになると思います。
では早速紹介!
まずはしっかり最初に「UIとSceneManagementを使う」と設定しましょう。
using UnityEngine.UI;
using UnityEngine.SceneManagement;
そしたら「代入先をSelectnumberにして、Textに表示できるようにnumberを使おう」という風なコードを打ち込みます。
public int Selectnumber;
public Text number;
そしたら「最初はSelectnumberは1」としましょう。
void Start () {
Selectnumber = 1;
}
こうすれば、最初からステージ1を選択できるようになります。
次はvoid Updateの中にコードを打ち込みます。
まずは「Selectnumberの数をTextのnumberに代入して表示させる」ようにします。
number.text = Selectnumber.ToString ();
さて次は「十字キーでSelectnumberの数字を変化」させましょう。
if (Input.GetKeyDown (KeyCode.RightArrow) && Selectnumber < 20) {
Selectnumber += 1;
}
ここで注意!
Selectnumber < 20を付けないと、 Selectnumberは永遠に増えます。
しっかりステージ数に合わせてここを変えましょう。
勿論逆もしかり。
if (Input.GetKeyDown (KeyCode.LeftArrow) && Selectnumber > 1) {
Selectnumber -= 1;
}
こうしないと数がずっとーされていきます。
ステージー1とかありえないですしねw
ここまで来ればもう簡単です。
「スペースキーを押して、もしSelectnumberがこの数だったらこのシーンに移動する。」を打ち込みましょう!
例えば...
if (Input.GetKeyDown (KeyCode.Space)) {
if (Selectnumber == 1) {
SceneManager.LoadScene ("S1");
}
}
これだったら「スペースキーを押したとき、Selectnumberが1だったのでS1に移動します」ということになります。
後は中の数字を変えてあげたら簡単に他のシーンに移動することができます。
大まかにいえばこんな感じです。
最後に、簡単なコードを書いときます。
ステージは1と2しかない設定ですが、そこは各自打ち直してください。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Botansousa : MonoBehaviour {
public int Selectnumber;
public Text number;
void Start () {
Selectnumber = 1;
}
void Update () {
number.text = Selectnumber.ToString ();
if (Input.GetKeyDown (KeyCode.RightArrow) && Selectnumber < 20) {
Selectnumber += 1;
}
if (Input.GetKeyDown (KeyCode.LeftArrow) && Selectnumber > 1) {
Selectnumber -= 1;
}
if (Input.GetKeyDown (KeyCode.Space)) {
if (Selectnumber == 1) {
SceneManager.LoadScene ("S1");
}
if (Selectnumber == 2) {
SceneManager.LoadScene ("S2");
}
}
}
}
間違ってたらごめんなさい!