現場レベルのゲーム制作が、すべてここで学べます。
この講座ではUnityを使って「箱庭経営シミュレーション×農場ゲーム」を作成していきます。
今回はその第11回目(完結回)です。
前回はショップで農園の機能拡張アイテムを購入できるようにし、徐々に施設が大きくなっていく成長・育成要素を導入しよりゲームらしくしていきました。
前回の記事:

今回は最後に従業員を雇用できるシステムを構築し、時給で従業員を雇って農園の経営を自動化したり、資金が足りなくなると人を雇えなくなってしまう経営のリアルをゲーム性として加えていきます。
また、最後に演出面の強化を行います。従業員の色分けを行ったり、ショップをPCからエフェクト付きで立ち上げるようにすることで視覚的に何が起きてるかをよりわかりやすくしてゲーム完成としましょう。
3Dゲームの軽量化手法であるオクルージョンカリングも実践します。
ショップから従業員を雇えるようにしよう
次は、ショップから従業員を雇えるようにしていきます。
現在は従業員が無給で働いている状態ですが、ここに給料の仕組みを加えることで、ゲームバランスを調整しやすくしていきましょう。
トグルと呼ばれるスイッチのようなものを用意し、そのスイッチがONの間だけ従業員を雇用できるシステムを構築します。
UIを用意しよう
まずは、従業員を雇うためのUIを作成していきます。
今回はこれまでのようなボタンではなく、トグル(チェックボックス)を使って実装していきます。それに伴い、ShopItemDataとは別の仕組みも新しく作成していきます。
Hierarchyから ShopTerminal_PC > Canvas > Display を右クリックし、UI > Toggle を選択して作成しましょう。作成したオブジェクトの名前は BugSprayEmployee_Toggle に変更します。

作成したBugSprayEmployee_Toggleを選択し、Inspectorから以下のように設定していきましょう。

次に、BugSprayEmployee_Toggleの子オブジェクトにあるBackgroundを選択し、Inspectorから以下のように設定していきましょう。

次に、BugSprayEmployee_Toggleの子オブジェクトにあるLabelを削除し、BugSprayEmployee_Toggleを選択した状態で右クリックから「UI > Text – TextMeshPro」を選択しましょう。

作成したText(TMP)を選択し、Inspectorから以下のように設定しましょう。
|
1 2 3 |
従業員を雇う <size=6><b>(虫よけスプレー)</b></size> 1 / 秒 |
注意:ここでの作業は必ず先にRectTransformを変更し、その後でTextInputの内容や文字の大きさを変更してください。手順を逆にするとUnityがクラッシュします。TextMeshProはRectTransformのサイズに基づいてテキストレイアウトを計算するためです。
| 順番 | 結果 |
|---|---|
| RectTransform → テキスト | ✅ 正しくレイアウト計算される |
| テキスト → RectTransform | ❌ レイアウトが崩れる可能性がある(場合によってはUnityがクラッシュ) |
手順を逆にするとこんなことになります(著者の環境ではタスクマネージャーでUnityエディタを切ることになりました💦)。

手順に注意して以下のように設定してください。

次はトグルを制御するためのスクリプトを作成していきます。
今回の処理はとてもシンプルで、以下の流れになります。
トグルをONにすると対象のオブジェクト(従業員など)が有効になります。
ONのあいだは、1秒ごとに所持金が減っていきます。
もし所持金が足りなくなった場合は、自動的にOFFになり、対象(雇用している従業員の機能)も無効になります。
- ONにすると「機能が使える代わりにお金が減る」
- OFFにすると「機能が止まりお金も減らない」
- お金が足りないと強制的にOFFになる
Projectウィンドウで Assets を開き、Scripts フォルダを開きます。
フォルダ内で右クリックして Create > MonoBehaviour Script を選択し、名前を「ToggleCostActivator」にしましょう。

作成できたら、そのスクリプトをダブルクリックで開き、以下の内容を書き込んでください。
最後に

お疲れ様でした!
この章で箱庭経営シミュレーションゲームとして一通りのシステムが完成しました。
ですが、これは「完成形」ではなく、あくまでスタート地点です。
システム開発で最も重要な要素の一つは汎用性の高い設計です。
汎用性が高ければ、カスタマイズしやすく少ない仕組みで多くの表現ができます。
今回作成したシステムでも、そうした考え方を基に設計しています。
例えば、新しく「箱」を作ってニンジンを10個運べるようにしたい場合、オブジェクトとショップの設定を追加するだけで実装できます。新しくスクリプトを書く必要はありません。
このように、アイデアをすぐ形にできる状態を作ることが開発において非常に重要です。
面白いゲームは必ずしも高度なプログラミングだけで生まれるものではありません。
むしろ重要なのは発想力やアイデアです。
そのアイデアを素早く試せる環境こそがゲームの面白さを引き出します。
優れたシステムとは複雑なものではありません。
「難しいことを簡単にできるようにする仕組み」です。
今回作成したゲームをベースにぜひ自分なりのアイデアを加えてみてください。
ここから先はあなたのオリジナル経営シミュレーションゲーム制作です!
現場レベルのゲーム制作が、すべてここで学べます。






コメント