はじめに
Textだけで選択メニュー的なのを作ってみました。デザインをこったりすることはできませんが、簡単なUI作るのになら使えそうです。
コード
Sentaku_Text.cs
public int SentakuID = 0;
int cnt = 0;
Text _text;
void Start(){
_text = GetComponent<Text>();
}
void Update(){
float YAxis = Input.GetAxisRaw("Vertical");
//長押しで連続入力
if (YAxis != 0) {
cnt++;
if (cnt == 1) SentakuID -= (int)YAxis;
else if (cnt >= 20) SentakuID -= (int)YAxis;
} else if (YAxis == 0) cnt = 0;
//一番端にいったら反転
if (SentakuID > 2) SentakuID = 0;
if (SentakuID < 0) SentakuID = 2;
Sentaku();
}
void Sentaku() {
switch (SentakuID) {
case 0:
_text.text = ">0だよ<" + "\n" + "1だよ" + "\n" + "2だよ";
break;
case 1:
_text.text = "0だよ" + "\n" + ">1だよ<" + "\n" + "2だよ";
break;
case 2:
_text.text = "0だよ" + "\n" + "1だよ" + "\n" + ">2だよ<";
break;
default:
break;
}
}
条件分岐の処理で該当する部分を"><"で挟むことで、選ばれてる感を出してます。
ちょっと説明しづらいので動作の様子は以下の通りです。
今回は処理で書いてないですが、非表示にしたいときは空文字をいれれば大丈夫です。
終わり
問題は選択肢が増えてきたときに、文字の入力がかなり面倒なことになりそうなところです。
でもちょろっと使う分には結構楽だと思います。選択肢が多いときは別の方法でやったがいい気がします。