LoginSignup
0
0

More than 1 year has passed since last update.

Unityで生成したボタンにキーボードのキーを自動で割り振りたい!

Posted at

この記事について

Unity1Weekで以前作成していたゲームで悩んだ内容について書こうと思います。
個人的な取り組みで会社でゲーム開発していないけど問題ないよね!

どんなゲームか

表示される数値を二進数に変換して答えるというゲームを作った。
面白くなかったので封印した。

スクリーンショット 2021-06-30 1.16.27.png

選択する難易度によってビット数が変わるというもの。
この時にPCでやるならキーボード入力ができるようにしたいと思い、ビット数の指定時(難易度選択時)に自動でボタンとキー入力を紐付けできないかと考えました。

ソースコード

Buttonを入れる範囲指定にからのオブジェクトを置いて、そこにHorizontal Layout Groupを追加します。
スクリーンショット 2021-06-30 1.15.26.png

CreateButton.cs
public string[] keyString = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p" };

private void OnEnable()
{
    for (int i = 0; i < 10; i++)
    {
        var obj = Instantiate(ButtonPrefab, this.transform);
        var bitNumber = (int) Math.Pow(2, i);
        var keyCode = keyString[i]; 
        obj.GetComponent<BitChanger>().InitSetProperty(bitNumber, keyCode);
    }

    _gameManager.CreateQuestions();
}
BitChanger
void Update()
{
    if (Input.GetKeyDown(keyString))
    {
        PushBitButton();
    }
}

public void InitSetProperty(int setBitNumber, string setKeyString)
{
    this.thisBitNumber = setBitNumber;
    this.keyString = setKeyString;
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0