[#3] ループ処理とユーザー入力 – Unityでのプログラミング入門
- Amagirasu
- 2024年10月6日
- 読了時間: 3分
更新日:2024年10月9日

はじめに
前回の記事では、変数や条件分岐を使った基本的なゲームロジックを学びました。今回は、プログラミングの重要な要素である「ループ処理」と、プレイヤーからの「ユーザー入力」を扱う方法について解説していきます。これらを理解することで、さらにインタラクティブなゲームを作れるようになります。
【目次】
1. ループ処理とは?
ループ処理は、特定の処理を繰り返し行うための構文です。例えば、複数のオブジェクトに同じ処理を適用したり、条件が満たされるまで同じ操作を繰り返したりする際に使用します。C#では代表的なループ処理として、for文とwhile文があります。
for文の基本構造
for文は、あらかじめ決まった回数だけ処理を繰り返したいときに使います。

上記のコードでは、iという変数を0からスタートし、i < 5の間ループが実行されます。i++によって毎回iが1ずつ増加し、5回ループした後に終了します。
while文の基本構造
while文は、条件が真(true)の間、処理を繰り返します。条件が変わるまで無限にループすることもできますが、その際はループが終了するための条件をきちんと設定する必要があります。

この例では、countが5未満である間ループが繰り返されます。count++で値を増やして条件を変えているので、5回目でループが終了します。
2. ユーザー入力を扱う
次に、プレイヤーからの入力を扱う方法を紹介します。Unityでは、キーボードやマウス、コントローラーなどからの入力を取得することができます。
キーボード入力を取得する
Unityでは、Inputクラスを使用してキーボード入力を取得します。例えば、プレイヤーが特定のキーを押した際に特定の動作をさせることができます。

Updateメソッドは毎フレームごとに呼び出されるため、リアルタイムでプレイヤーの入力をチェックできます。この例では、Wキーが押されている間メッセージを出力し、スペースキーが押された時と離された時にそれぞれメッセージを表示します。
マウス入力を取得する
マウス入力も同様にInputクラスを使って取得できます。クリックの判定やマウスの位置を取得して、インタラクティブな操作を実装することが可能です。

この例では、マウスの左クリックが押された瞬間にメッセージが表示され、さらに現在のマウスの位置がコンソールに出力されます。Input.mousePositionを使えば、マウスの位置に基づいてゲーム内のオブジェクトを操作することも可能です。
3. 実践:プレイヤーキャラクターの移動
ここでは、これまでの内容を使って、キーボード入力によってプレイヤーキャラクターを左右に動かす方法を紹介します。

このコードでは、プレイヤーが左矢印キーまたは右矢印キーを押すと、キャラクターが左右に移動します。Translateメソッドを使ってオブジェクトの位置を変更し、Time.deltaTimeでフレームレートに依存しない動きを実現しています。
まとめ
今回の記事では、Unityでのループ処理とユーザー入力の基本について学びました。ループ処理を使うことで同じ処理を繰り返し行え、ユーザー入力を取得することでインタラクティブな要素をゲームに追加できます。
次回は、複数のオブジェクトを動かしたり、プレイヤーとゲームオブジェクトとの相互作用を扱う方法について解説します。ぜひ一緒にステップアップしていきましょう!