現場レベルのゲーム制作が、すべてここで学べます。
この講座ではUnityを使って「箱庭経営シミュレーション×農場ゲーム」を作成していきます。
今回はその第5回目です。
前回はプレイヤーがアイテムを複数持てる箱を作成しました。
前回の記事:

第5回では、農場ゲームとして重要な畑システムを作成していきます。
種を植える→芽が出る→成長する→にんじんが生える→収穫という一連の流れを作成していきましょう。
Unityで畑システムを作成しよう
ProjectウィンドウでAssetsフォルダ内で、空いている場所で右クリックします。
Create > Folder を選択し、フォルダ名を「Prefabs」にしてください。

Hierarchyから「Map Root > Field > 3D_Tile_Ground_05 > 3D_Tile_Ground_05 (1)」を探し、作成した「Prefabs」フォルダにドラッグ&ドロップしましょう。

ドラッグ&ドロップすると、下のようなダイアログが表示されます。
ここでは「Original Prefab」を選択してください。

この画面は何?
このダイアログは、「新しくPrefabを作成するのか」「既存のPrefabを元にした派生(Variant)を作るのか」をUnityが確認している画面です。
- Original Prefab
完全に新しいPrefabを作成します。
今回は、元となる地面オブジェクトをそのままPrefab化したいので、こちらを選びます。 - Prefab Variant
既存のPrefabを継承した派生Prefabを作成します。
元Prefabの変更が自動で反映されるため、量産用や差分管理向けですが、今回の講座では使用しません。

Prefabsフォルダ内にある「3D_Tile_Ground_05 (1)」をCTRL+Dで複製し、合計5個になるようにしましょう。

Prefabの名前を「FieldStage_0」から「FieldStage_4」になるように変更しましょう。


作成したPrefabは、それぞれ以下の状態になるように作成します。

このように段階ごとにPrefabを分けておくことで、成長状態の切り替えをシンプルに管理できるようになります。
FieldStage_1
FieldStage_0はそのままでいいので、まずはFieldStage_1の状態を作成していきます
「FieldStage_1」をダブルクリックして、Prefab編集モードに入りましょう。

Inspectorから、Meshを「3D_Tile_Farm_Field_01」に変更しましょう。

これでモデルが以下のように耕された畑になると思います。

これでFieldStage_1は完成です。つぎはFieldStage_2の状態を作成していきます。
FieldStage_2

「FieldStage_2」をダブルクリックして、Prefab編集モードに入りましょう。

FieldStage_1と同様にInspectorから、Meshを「3D_Tile_Farm_Field_01」に変更しましょう。

Projectウィンドウから、
AssetHuntsl > GameDev Starter Kit – Farming > Assets > Farm Crop Step > Farm_Crop_Carrot_Step_01
を開き、表示された Farm_Crop_Carrot_Step_01 を、
Hierarchy ウィンドウへドラッグ&ドロップしてください。

配置したFarm_Crop_Carrot_Step_01を選択し、
Inspectorに表示されている Transform を以下のように設定してください。


これでFieldStage_2は完成です。つぎはFieldStage_3の状態を作成していきます。
FieldStage_3

Prefabsフォルダに戻り、「FieldStage_3」をダブルクリックして、Prefab編集モードに入りましょう。

FieldStage_1, 2と同様にInspectorから、Meshを「3D_Tile_Farm_Field_01」に変更しましょう。

Projectウィンドウから、
AssetHuntsl > GameDev Starter Kit – Farming > Assets > Farm Crop Step > Farm_Crop_Carrot_Step_02
を開き、表示された Farm_Crop_Carrot_Step_02 を、
Hierarchy ウィンドウへドラッグ&ドロップしてください。

配置したFarm_Crop_Carrot_Step_02を選択し、
Inspectorに表示されている Transform を以下のように設定してください。


これでFieldStage_3は完成です。つぎはFieldStage_4の状態を作成していきます。
FieldStage_4

Prefabsフォルダに戻り、「FieldStage_4」をダブルクリックして、Prefab編集モードに入りましょう。

FieldStage_1, 2, 3と同様にInspectorから、Meshを「3D_Tile_Farm_Field_01」に変更しましょう。

Projectウィンドウから、
AssetHuntsl > GameDev Starter Kit – Farming > Assets > Farm Crop > Farm_Crop_Carrot_01
を開き、表示された Farm_Crop_Carrot_01 を、
Hierarchy ウィンドウへ4つ、ドラッグ&ドロップしてください。

配置したにんじんを選択し、
Inspectorに表示されている Transform をそれぞれ以下のように設定してください。
Farm_Crop_Carrot_01

Farm_Crop_Carrot_01 (1)

Farm_Crop_Carrot_01 (2)

Farm_Crop_Carrot_01 (3)

これでFieldStage_4は完成です。

Unity C#スクリプトで農作物を成長させよう
作成した5段階の畑をスクリプトから制御して成長するようにしてみましょう。
今回作成したいのはこのような形です。

スクリプトを作成する
Projectウィンドウで Assets を開き、Scripts フォルダを開きます。
フォルダ内で右クリックして Create > MonoBehaviour Script を選択し、名前を「FieldPlot」にしましょう。

作成できたら、そのスクリプトをダブルクリックで開き、以下の内容を書き込んでください。
まとめ
ここまで作成できたら、「ShovelItem」「ItemInteractor.cs」が正しく保存されていることを確認してください。再生すると畑のシステムがちゃんと動くはずです。

今回は、畑が成長するシステムを作成し、プレイヤーが直接作物を植えられるようにしました。
さらに、種の所持数を管理するシステムを導入することで、無限に植えられてしまう問題を解消し、よりゲームらしい挙動に改良しました。
また、シャベルを使って畑をリセットできる機能も追加し、収穫後に再び作物を育てられる流れを整えました。
次の講座では、ショッピングシステムを作成していきます。現状では有限となっている種を、購入することで増やせる仕組みを実装していきましょう。
次の記事:

現場レベルのゲーム制作が、すべてここで学べます。







コメント