この記事について
Unity1Weekで以前作成していたゲームで悩んだ内容について書こうと思います。
個人的な取り組みで会社でゲーム開発していないけど問題ないよね!
どんなゲームか
表示される数値を二進数に変換して答えるというゲームを作った。
面白くなかったので封印した。
選択する難易度によってビット数が変わるというもの。
この時にPCでやるならキーボード入力ができるようにしたいと思い、ビット数の指定時(難易度選択時)に自動でボタンとキー入力を紐付けできないかと考えました。
ソースコード
Buttonを入れる範囲指定にからのオブジェクトを置いて、そこにHorizontal Layout Groupを追加します。
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;
}