【Unity】Buttonをキーボードやパッドだけで操作するときに、マウス操作が邪魔

マウスを使わないゲームの開発時に、

キーボード操作だけでButtonを操作したいのに、ボタンをマウスで選択できちゃったり、マウスクリックでアクティブが外れちゃったりする問題があります。

 

ボタンをマウスで選択できちゃう問題の対応

ボタンをマウスで選択できなくするためには、ボタンの上にイメージを貼れば良いようです。

f:id:tsugumiyumeno:20220416203208p:plain

画像のアルファ値を0にすれば、見えなくなり解決

f:id:tsugumiyumeno:20220416203304p:plain

 

マウスクリックでアクティブが外れちゃったりする問題の対応

https://twitter.com/YumenoTsugumi/status/1515259764766171136?s=20&t=qBh01r4D7hb0IcA733bjpQ

アクティブなボタンがある時に、画面をクリックするとアクティブが外れてしまいます。

 

以下のようにアクティブなボタンを記憶しておいて、アクティブが無くなった時に記憶していたボタンで上書く感じでどうにかなるようです。

 

 

using UnityEngine.EventSystems;

 

    GameObject currentSelectedGameObject = null;
    void Update()
    {
        GameObject currentObject = EventSystem.current.currentSelectedGameObject;
        if (currentObject)
        {
            currentSelectedGameObject = currentObject;
        } 
        else
        {
            if(currentSelectedGameObject != null){
                EventSystem.current.SetSelectedGameObject(currentSelectedGameObject);
            }
        }
    }