「Unity/UIButton」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→Buttonイベントを追加(一行パターン)) |
(→ボタン無効化) |
||
| 行43: | 行43: | ||
GameObject button = GameObject.Find("/Canvas/Button"); | GameObject button = GameObject.Find("/Canvas/Button"); | ||
button.GetComponent<Button>().interactable = false; | 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 | http://unitygeek.hatenablog.com/entry/2015/03/07/145845 | ||
2020年11月5日 (木) 16:25時点における版
目次
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");
});
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%
