エージェント

確認済のバージョン: 2017.2

-

難易度: 中級

はじめに

さて、タワーを作成したので、タワーに攻撃をしかけてくる何かが必要になります。このセクションでは、プレイヤーの本拠地を攻撃しようとする敵エージェントを作成する方法について説明します。敵エージェントをステージの周りで移動させるプロセスの大部分は、ステージの設定 で説明します。その前に、まずエージェントゲームオブジェクトに必要なコンポーネントを設定する必要があります。

これらの自立したキャラクターをここでは、「敵 (Enemy)」ではなく「エージェント (Agent)」と表現することにします。

エージェントの作成

まず Agent Configuration を作成します。

  • Project ウィンドウで、左上の Create メニューをクリックし、Create > Tower Defense > Agent Configuration の順に選びます。

Agent Configuration が作成できたので、エージェントの値を設定できます。

次に、エージェントのゲームオブジェクトを作成します。

  • 空のゲームオブジェクトを作成します。

  • このゲームオブジェクトを NewAgent と名付けます。

  • このゲームオブジェクトに HitscanLauncher または BallisticLauncher を追加します。詳細はhttps://unity3d.com/learn/tutorials/puroziekutos/tower-defense-template/targeting-and-firingを参照してください。

  • このゲームオブジェクトに AttackingAgent コンポーネントか FlyingAgent コンポーネントを加えます。

  • Ememy (SimpleAlignment) スクリプタブルオブジェクトを Alignment フィールドにドラッグします。

  • モデルを加え、エージェントゲームオブジェクトの子オブジェクトとしてエージェントを可視化します。

  • エージェントの空の子ゲームオブジェクトを作成し、それを Targetable と名付けます。このオブジェクトによって、タワーはエージェントを有効な攻撃目標と認識します。

  • Hierarchy ウィンドウでエージェントを選択して、Targetable を AttackingAgent コンポーネントの Target Transform フィールドにドラッグアンドドロップします。

NavMeshAgent コンポーネントは、AttackingAgent または FlyingAgent コンポーネントの追加時に自動的に加えられます。NavMeshAgent コンポーネントは、エージェントをレベルで移動させるために必要です。NavMeshAgent コンポーネントで定義された値は、移動の仕方を指定します。

タワーの場合と同様に、エージェントは AttackingAgent または FlyingAgent コンポーネントを単にゲームオブジェクトにアタッチするだけでは定義されません。エージェントが必要な動作を行うためには、他のコンポーネントが必要です。

  • 適切な Collider コンポーネントを加えて、エージェントのモデルを NewAgent ゲームオブジェクトに加えます。

Collider コンポーネントは、エージェントが砲撃に当たったかどうかを判断するために必要です。

  • DamageCollider コンポーネントを NewAgent ゲームオブジェクトに加えます。

AgentConfiguration を理解する

Agent Name

エージェントの名前。

Agent Description

エージェントとその能力に関する説明文。

Agent Prefab

AttackingAgent コンポーネント、または FlyingAgent コンポーネントを含むエージェントのプレハブ。

AttackingAgent と FlyingAgent を理解する components

スターターキットには、2 つのエージェントのコンポーネント、AttackingAgent と FlyingAgent が用意されています。

AttackingAgent は、経路が通れるようになるまで近くのタワーで停止し、攻撃します。この操作は、AttackAffector に依存しています (後述の 標的設定と砲撃 参照)。FlyingAgent は障害物を目的地に直接飛ばすだけで、通常の NavMesh の挙動は無視します。

これらのコンポーネントは両方とも、エージェントの基本クラスを拡張し、まったく同じ方法で設定されます。 また、エージェントの基本クラスを拡張するスクリプトを作成することによって、エージェントの挙動に関する独自のロジックを実装することもできます。

Max Health

エージェントの最大体力。

Starting Health

開始時点のエージェントの体力。

Alignment

Alignment は、エージェントがどの「チーム」に属しているか、したがって、エージェントが標的としているものと何に標的にされているかを定義します。 敵エージェントを作成する場合、これは通常 Enemy に設定します。

Target Transform

通常、タワーやエージェントが互いを狙うとき、Transform の原点をねらいます。TargetTransform を使うと、別の点を狙うことができます。

Applied Effect Offset

タワーがエージェントにエフェクトを適用する場合、この値を使ってパーティクルエフェクトの位置を調整できます。

Applied Effect Scale

タワーがエージェントにエフェクトを適用する場合、この値を使ってパーティクルエフェクトのサイズを調整できます。

関連するチュートリアル