![見出し画像](https://assets.st-note.com/production/uploads/images/154614062/rectangle_large_type_2_d22e26e9a15b1ea43ada11bdc9c34b9a.png?width=1200)
キーボードのみで操作できるようにしてみた!【ゲーム制作記15】
はじめに
お久しぶりです。前回の投稿からだいぶ期間が空いてしまいました…泣
ゲーム制作やプログラミングの勉強はずっと続けていたので、書きたいネタが飽和状態です…笑
![](https://assets.st-note.com/img/1726531721-DN3OEIaewWTP6yUgk7ptL0qQ.png?width=1200)
各ページには参考になる記事や、自分が書いたコードを記録しています
今回は、最近ハマっている機能の紹介です。
ゲームをプレイするとき、ただプレイするぶんにはキーボードの操作で完結しているのに、ボタンをクリックするときはマウスが必要だったら、快適にプレイできているとは言えないかな?と思っています。
できることなら、キーボードで全て入力を完結させたい!
ということで、そのための設定を紹介していきます。
動作環境は
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です。
②カーソルの行き来を整える
![](https://assets.st-note.com/img/1726533953-IEXvqz6QhSC5AJjTpBcNKiRr.png)
ボタンのオブジェクトを選択すると、inspectorから「Navigation」という項目を見つけることができると思います。
デフォルトだと、ここが「Automatic」になっているかと思います。
ここを「Horizontal」や「Vertical」などに変更して設定していくことで、自分のやりたいようにカーソルの行き来を作ることができます。
最後に
最後まで見ていただき、ありがとうございました!
もちろん、この機能をつけたからといって、マウス操作ができなくなるわけではありません!あくまで「操作をキーボードで完結させることもできるよ」という仕組みです。
これを仕込んでおくことで、ゲームのクオリティもまた一段上がると考えているので、プレイしやすさを考えながら今後もゲーム制作に励んでいきたいと思います!