Dopecoil
@Dopecoil

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

UnityでUIのbuttonにキーボードを割り当てることは可能でしょうか?

UnityでUIのbuttonにキーボードのキーを割り当てることは可能でしょうか?
可能であればやり方を教えていただきたいです。

0

1Answer

Unity の機能にはありませんが、プログラミングすればできます。お好きに修正して使って下さい。

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

/// <summary>
/// Button の GameObject にアタッチして使う
/// </summary>
[RequireComponent(typeof(Button))]
public class KeyAssignToButton : MonoBehaviour
{
    /// <summary>このキーを押すとボタンが反応する</summary>
    [SerializeField] KeyCode _key = default;
    Button _button = default;

    void Start()
    {
        _button = GetComponent<Button>();
    }

    void Update()
    {
        if (Input.GetKeyDown(_key))
        {
            // クリックは離した時に成立するが、ボタンからの場合は押した時点で成立させる
            _button.onClick.Invoke();
            // ボタンを押した時の見た目の変化を起こす
            ExecuteEvents.Execute(_button.gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.pointerDownHandler);
        }
        else if (Input.GetKeyUp(_key))
        {
            ExecuteEvents.Execute(_button.gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.pointerUpHandler);
        }
    }
}
1Like

Your answer might help someone💌