「Unity/UIButton」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→ボタン無効化) |
(→Buttonイベントを追加(一行パターン)) |
||
行36: | 行36: | ||
Debug.Log("hello"); | Debug.Log("hello"); | ||
}); | }); | ||
+ | |||
+ | ==複数ボタンクリック== | ||
+ | ローカル変数に一度に入れないと、最大値が、値として渡されるので、注意する。 | ||
+ | <pre> | ||
+ | void Start() | ||
+ | { | ||
+ | foreach (var num = 0; num < 3; num ++) | ||
+ | { | ||
+ | var id = i; | ||
+ | buttons[num].onClick.AddListener(() => OnClick(id)); | ||
+ | } | ||
+ | } | ||
+ | void OnClick(int id) | ||
+ | { | ||
+ | Debug.Log("id=" + id); | ||
+ | } | ||
+ | <//pre> | ||
+ | 参考:http://kuromikangames.com/article/480275039.html | ||
==a script called already exists at that pathエラーの場合== | ==a script called already exists at that pathエラーの場合== |
2022年2月21日 (月) 18:21時点における版
目次
Button設置
- GameObject/UI/Buttonを選択すると"Button"がCanvas上に設置される
- そのまま再生
Buttonイベントは2種類方法がある
- GUI上からボタンイベントを設定するパターン
- Scriptでボタンイベントを設定するパターン
Buttonにevent追加(GUI上からボタンイベントを設定するパターン)
- ButtonをCanvas上に設置
- Canvas上のButtonを選択して左のinspectorタブを開く
- Button(Script)のところのOnClick()を確認
- Runtime Onlyを選択
- select objectにButtonを選択する
- 一番下のAddComponentを選択しNewScriptを選択Script名をUIButtonScriptと入力しUIButtonScript.csを作成する(UIButtonScript.csはAssetsの直下に作成される)
- UIButtonScript.csに以下メソッドを追加
public void OnEventClick(string name) { Debug.Log(name+" hello"); }
- ButtonのInspectorのOnClickのno functionの場所にUIButtonScript.OnEventClickを入れる
- ButtonのInspectorの新しく追加された入力欄にメソッドに渡す引数"hoge"を入れる
- そのまま再生
- Buttonをクリックするとconsoleに"hoge hello"とでる
Buttonイベントを追加(Scriptでボタンイベントを設定するパターン)
public class UIButtonScript : MonoBehaviour { void Start () { GameObject.Find("Button").GetComponent<Button>().onClick.AddListener(OnClick); } void OnClick() { Debug.Log("hello"); }
Buttonイベントを追加(一行パターン)
GameObject.Find("Button").GetComponent<Button>().onClick.AddListener(delegate { Debug.Log("hello"); });
複数ボタンクリック
ローカル変数に一度に入れないと、最大値が、値として渡されるので、注意する。
void Start() { foreach (var num = 0; num < 3; num ++) { var id = i; buttons[num].onClick.AddListener(() => OnClick(id)); } } void OnClick(int id) { Debug.Log("id=" + id); } <//pre> 参考:http://kuromikangames.com/article/480275039.html ==a script called already exists at that pathエラーの場合== 既に作成したスクリプトを選択する場合はAddComponentのあとNewScriptでなくScriptsから既存csを選択する ==ボタン無効化== GameObject button = GameObject.Find("/Canvas/Button"); button.GetComponent<Button>().interactable = false; 見た目も無効化のように、少し色が黒くなる。 ==ボタンの色や透明度を変更== obj.GetComponent<Image>().color = new Color(1f, 0f, 0f, 1f); // 赤 obj.GetComponent<Image>().color = new Color(1f, 1f, 1f, 0.5f); // 白の透明度50% ==参考== http://unitygeek.hatenablog.com/entry/2015/03/07/145845