WinFormsでRPG入門 〜Unityへ繋がる設計の考え方〜
C# の クラス と イベント駆動 を、ゲームらしい題材(RPG)で固めつつ、あとから Unity に進んだときに「中身は同じ」と感じられるように整理したシリーズです。
補足(前提): WinForms の画面の作り方がまだの場合は、WinForms入門シリーズの「フォームとコントロール」「Button」「Label」を先に押さえるとスムーズです。class のイメージをコンソールで固めたい場合は、クラス気づき学習シリーズとの併読も有効です。継承・abstract・ポリモーフィズムまでコンソールでつなげたい場合は、ターン制バトルで学ぶオブジェクト指向も参照してください。
シリーズ目次(読む順)
- 最小構成のRPG(Player・Enemy・攻撃ボタン) … クラス分割・状態・Click イベント
- 敵を複数にする(配列 /
List) …List<Enemy>・targetIndex・全滅判定 - コマンド選択(
ifで分岐) … ラジオボタン・DoAttack/DoHeal・MaxHp - クラス分割(
BattleManagerなど) … 戦闘ロジックの集約・フォームの薄型化 - Unity に移植するときの対応関係まとめ … 持ち込む層・UI 置き換え・橋渡し用
MonoBehaviour
各回の読み方(おすすめの型)
毎回、次の3つが揃うように書いています。
| 見出しのイメージ | 内容 |
|---|---|
| 今回の最小ゴール | その記事だけで「動くもの」 |
| 前回からの差分 | 新しく足した考え方・コードだけ |
| Unity での当たり所 | 入力・表示は違うが、ロジックはどこに載せるか |
第1回だけは対応表を厚めにしています。第2回以降は「変わったところ」中心にします。
WinForms と Unity の対応(全体像・第1回で詳述)
| 要素 | WinForms(このシリーズ) | Unity(イメージ) |
|---|---|---|
| プレイヤー | Player クラス |
GameObject + スクリプト(コンポーネント) |
| 敵 | Enemy クラス |
同上 |
| 入力 | Button.Click など |
Input System(キー等) / UI ボタン |
| 更新のきっかけ | イベント | Update() や UI イベント |
設計(データとルール)は近い。違いは主に「描画」と「入力の取り方」 という前提で読み進められます。
関連シリーズ
| シリーズ | 内容 |
|---|---|
| WinForms入門シリーズ | コントロールとイベントの基礎 |
| クラス気づき学習シリーズ | コンソールで class / List の感覚を固める |
| ターン制バトルで学ぶオブジェクト指向 | コンソールで継承・abstract・ポリモーフィズム(本シリーズの設計の補強) |
| WinFormsでゲームを作ろう | Timer・座標・キー入力など発展ゲーム要素 |
| Unity入門シリーズ | 本シリーズの「先」のエディタとスクリプト |
まとめ
WinForms で RPG を小さく作ることは、Unity に進むための土台(クラスで考える・状態を持つ・イベントで進める)の訓練になります。はじめての方は 第1回、複数体の敵は 第2回、コマンド分岐は 第3回、設計の整理は 第4回、Unity との対応の総まとめは 第5回 の順がおすすめです(第1回の Player / Enemy が前提です)。
シリーズ全5回で、WinForms から Unity へ橋渡ししやすい設計の型を一通り扱いました。発展は Unity入門シリーズ へ進んでください。