[Unity] カーソルでとびとびにメニュー選択
今回は下の画像のような、メニュー場面の選択などでよく使うカーソル選択用のスクリプトを書きました
上下キーで上下に動き、スペースキーで決定します
(書き換えれば左右や、他のキーやボタンで動かすことも可能)
テキストや背景画像の入れ方はこちらの記事が参考になると思います。
手順は簡単で、
1、カーソルにしたい画像を「Scene」タブにドラッグ&ドロップ
2、カーソルを一番上の項目に位置合わせしておく
3、下のコードの「function」のところに項目選択時にさせたい動作を設定
4、その画像が選択されている状態で、コードを「inspector」タブにドラッグアンドドロップ
5、パラメータを適当に設定(下参照)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class main : MonoBehaviour {
int Pos = 1;
public int nummenu;
public float linewidth;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown("down") && Pos != nummenu)
{
Vector3 tmp = this.transform.position;
this.transform.position = new Vector3(tmp.x, tmp.y - linewidth, tmp.z);
Pos += 1;
}
else if (Input.GetKeyDown("up") && Pos != 1)
{
Vector3 tmp = this.transform.position;
this.transform.position = new Vector3(tmp.x, tmp.y + linewidth, tmp.z);
Pos -= 1;
}
else if (Input.GetKeyDown("space") && Pos != 1)
{
function();
}
}
void function()
{
if(Pos==1)
{
// 一番上の項目を選んだときの動作
// 好きな動作を入れてね
}else if ...
}
}
パラメータの説明:
「nummenu」:メニューの数(動ける上限と下限を決めます)
「linewidth」:一回で上下に動く幅です
「nummenu」:メニューの数(動ける上限と下限を決めます)
「linewidth」:一回で上下に動く幅です
↓自分の場合
Enjoy!
コメント
コメントを投稿