サイトアイコン StudioFun

Unity チュートリアルのタワーディフェンステンプレートを触ってみる(32)

Unity チュートリアルのタワーディフェンステンプレートを触ってみる(31)では「タワーディフェンステンプレートのステージの設定編」を行い、ナビゲーションノードの作成まで行った。今回も引き続き「タワーディフェンステンプレートのステージの設定編」のタワー配置エリアから行っていく。

今回は前回の続きからの記事となるため、7.章からの開始となる。前回の記事までについてはこちらを参照してほしい。

Unity チュートリアルのタワーディフェンステンプレートを触ってみる(30)では Tower ゲームオブジェクトに追加した、CurrencyAffector の解説を行った。これで「その他の効果、ビジュアライザー、挙動編」は一通り完了したことになる。今回から「タワーディフェンステンプレートのステージの設定編」を進めていく。1.タワーディフェンステンプレートのステージの設定編 – 概要Unity チュートリアルのタワーディフェンステンプレートを触ってみる(2)で述べた通り、Unity のチュートリアルに沿って作業を進めていく。ということ...
Unity チュートリアルのタワーディフェンステンプレートを触ってみる(31) - StudioFun

7.タワーディフェンステンプレートのステージの設定編 – タワー配置エリア

『スターターキットのタワーには、プレイヤーがステージ内にタワーを配置できるようにするために IPlacementAreas が必要です。 空のゲームオブジェクトに IPlacementArea を実装した後、タワーの配置場所を定義することができます。

スターターキットには、IPlacementArea の 2 つの実装が含まれています。』とのことなので、それぞれを作成していきたいと思う。

SingleTowerPlacementArea

『SingleTowerPlacementArea は、タワーを 1 つだけ配置できる IPlacementArea です。』とのことなので、指示に従って SingleTowerPlacementArea の作成を行っていきたいと思う。手順については以下の通りとなっている。

上記の指示通り空のゲームオブジェクトを TowerPlacementArea という名称で作成し、Sphere Collider と SingleTowerPlacementArea を追加して、SinglePlacementTile Prefab を Placement Tile Prefab  に対してドラッグアンドドロップすると以下のようになる。

SingleTowerPlacementAreaの作成

TowerPlacementGrid

『TowerPlacementGrid は、プレイヤーが複数のタワーを配置できるグリッド状のエリアです。』v

上記の指示通り空のゲームオブジェクトを PlacementGrid という名称で作成し、TowerPlacementGrid を追加した。その後、任意のグリッド(ここでは、x : 3, y : 10 とした。)を設定し、PlacementTile  を設定すると以下のようになった。

TowerPlacementGrid の作成

8.タワーディフェンステンプレートのステージの設定編 – 本拠地を配置

『敵は、最終ノードに到達したときにプレイヤーの耐久力を奪いません。この問題を解決するには、最後のナビゲーションノードをいくらか変更する必要があります。』とのことなので、指示に従って本拠地の作成を行っていきたいと思う。手順については以下の通りとなっている。

上記の指示通り前回作成したノードの最後に PlayerHomeBase コンポーネントを追加した。その後、Max Health と Starting Health に任意の値を設定し、Player (SimpleAlignment) スクリプタブルオブジェクトを設定すると以下のようになった。

PlayerHomeBase の設定

9.タワーディフェンステンプレートのステージの設定編 – Tower Library を加える

『タワーを配置するエリアを作成したので、そのステージでどのタワーが使用可能なのかを設定する必要があります。』とのことなので、指示に従っ Tower Library の作成を行っていきたいと思う。手順については以下の通りとなっている。

上記の指示通り Create > Tower Defense > Tower Library から Tower Library の作成を行う。

Tower Library の作成

その後、任意のタワーの Prefab を設定に追加する。ここでは既存の LayserTower を設定している。

Tower Library の作成

10.タワーディフェンステンプレートのステージの設定編 – ウェーブの設定1

『敵を発生させるために、ウェーブを設定する必要があります。』とのことなので、指示に従ってウェーブの作成を行っていきたいと思う。手順については以下の通りとなっている。

上記の指示通り空のゲームオブジェクトを Wave Manager という名称で作成し、Wave Manager コンポーネントを追加した。その後、Size の数を1として設定を行うと以下のようになった。この後、作成する Wave1 を Wave として追加した。

Wave Manager の作成

『ウェーブを作成する代わりに以下を行うこともできます。』とのことなので、指示に従ってウェーブの作成を行っていきたいと思う。手順については以下の通りとなっている。

上記の指示通り空のゲームオブジェクトを Wave1 という名称で作成し、Wave コンポーネントを追加した。その後、Spawn Instructions の数を1として設定を行うと以下のようになった。

Wave の作成

11.タワーディフェンステンプレートのステージの設定編 – Game Manager を加える

『プレイヤーがすべての敵を倒すか、本拠地の耐久力が底をついたときにステージが終了するためには、ゲームオブジェクトに Game Manager コンポーネントを加える必要があります。』とのことなので、指示に従って Game Manager の作成を行っていきたいと思う。手順については以下の通りとなっている。

上記の指示通り Prefab から Game Manager をドラッグアンドドロップし、Level List を追加した。

Game Manager の作成 

12.タワーディフェンステンプレートのステージの設定編 – Level Manager を加える

『LevelManager はゲームの状態を管理し、ステージの他の重要な機能 (例えば、最初にプレイヤーに与えられる通貨の量など) を設定することができます。以下の手順でそれを加えます。』とのことなので、指示に従って Level Manager の作成を行っていきたいと思う。手順については以下の通りとなっている。

上記の指示通り、11.で追加した Game Manager に対してを LevelManager コンポーネントを追加し、Starting Currency フィールドを設定と TowerLibrary スクリプタブルオブジェクトを Tower Library の追加を行うと以下の通りとなる。

Level Manager の追加

13.タワーディフェンステンプレートのステージの設定編 – Pool Manager

『敵、砲弾の受動的な効果のインスタンスを絶え間なく作成および破壊することは、負担のかかる操作です。 これを行う代わりに、スターターキットのプールマネージャーを利用できます。 プールマネージャーは、オブジェクトの複製を作成、格納し、再利用できるようにするクラスです。』

上記の指示に従い、自作のエージェントに足して Poolable を追加すると以下の通りとなる。

Poolable の追加

その後、空のゲームオブジェクトを Pool Manager という名前で作成し、ステージに登場し、複数生成されるオブジェクトをドラッグアンドドロップして追加すると以下のようになる。

Pool Manager の作成
モバイルバージョンを終了