見出し画像

キーボードのみで操作できるようにしてみた!【ゲーム制作記15】

はじめに

お久しぶりです。前回の投稿からだいぶ期間が空いてしまいました…泣
ゲーム制作やプログラミングの勉強はずっと続けていたので、書きたいネタが飽和状態です…笑

notionでまとめているメモです
各ページには参考になる記事や、自分が書いたコードを記録しています

今回は、最近ハマっている機能の紹介です。
ゲームをプレイするとき、ただプレイするぶんにはキーボードの操作で完結しているのに、ボタンをクリックするときはマウスが必要だったら、快適にプレイできているとは言えないかな?と思っています。
できることなら、キーボードで全て入力を完結させたい!

ということで、そのための設定を紹介していきます。

動作環境は

  • Windows11

  • Unity 2022.3.28f1

です。
よろしくお願いします!


やりたいこと

①シーンを読み込んだ時、最初からカーソルがボタンに合っているようにする
②カーソルの行き来を整える

通常、シーンを読み込んだ時、ボタンにカーソルは合っていません。なので、マウス操作が必要になります。
それをスクリプトを1つ用意して、解消していきます。

また、ただボタンを並べただけだと、カーソルが思い通りに動かないな?となることがあると思います。ボタン同士の繋がりは、何も設定していないとUnityが自動で設定してくれてしまうのです。
その設定の変更方法も見ていきます。

①シーンを読み込んだ時、最初からカーソルがボタンに合っているようにする

今回は、カーソルが必ず合って欲しいボタンがある想定でコードを書きました。

using UnityEngine;
using UnityEngine.UI;

public class Choice : MonoBehaviour
{
    [SerializeField] Button button;

    void Start()
    {
        button.Select();
    }
}

【.Select();】という部分が重要です。

このスクリプトを適当なオブジェクトにアタッチした後、inspectorを見て、buttonというところに最初にカーソルを合わせたいボタンをアサインします。

プラスで、私は「ボタンを押したとき、別のパネルが開いて、そのボタンにも初めからカーソルが合っている」という動きを作りたかったので、

public void ReChoice(Button selectButton)
    {
        selectButton.Select();
    }

先程のスクリプトにこの4行を追加してよく使っています。
ボタンを押したときにこの関数が呼ばれるようにすればOKです。

②カーソルの行き来を整える

ボタンのオブジェクトを選択すると、inspectorから「Navigation」という項目を見つけることができると思います。
デフォルトだと、ここが「Automatic」になっているかと思います。

ここを「Horizontal」や「Vertical」などに変更して設定していくことで、自分のやりたいようにカーソルの行き来を作ることができます。

最後に

最後まで見ていただき、ありがとうございました!

もちろん、この機能をつけたからといって、マウス操作ができなくなるわけではありません!あくまで「操作をキーボードで完結させることもできるよ」という仕組みです。

これを仕込んでおくことで、ゲームのクオリティもまた一段上がると考えているので、プレイしやすさを考えながら今後もゲーム制作に励んでいきたいと思います!

この記事が気に入ったらサポートをしてみませんか?