Unity チュートリアルのタワーディフェンステンプレートを触ってみる(24)
Unity チュートリアルのタワーディフェンステンプレートを触ってみる(23)では LaserTower_0 に追加した Targetter の解説を行った。これで「標的設定と砲撃編」は一通り完了したことになる。今回から「その他の効果、ビジュアライザー、挙動編」を進めていく。
1.その他の効果、ビジュアライザー、挙動編 – 耐久力を可視化する
Unity チュートリアルのタワーディフェンステンプレートを触ってみる(2)で述べた通り、Unity のチュートリアルに沿って作業を進めていく。ということで次にその他の効果、ビジュアライザー、挙動について進めていく。
Unity 公式ページの「標的設定と砲撃」についてはこちらを参照してほしい。
『エージェントやタワーが残っている耐久力をプレイヤーに表示するには、以下を行います。』とのことなので指示に従って耐久力の可視化を進める。手順については以下の通りとなっている。
-
HealthBar プレハブを Prefabs/UI/HUD からドラッグして、Tower、AttackingAgent、FlyingAgent コンポーネントのいずれかがアタッチされたゲームオブジェクトの子にします。
-
HealthBar オブジェクトを選択し、その親ゲームオブジェクトを Damageable Behavior フィールドにドラッグアンドドロップします。
しかしながら、Unity 2018.3.0b5 版では
-
HealthBar プレハブを Prefabs/UI
/HUDからドラッグして、Tower、AttackingAgent、FlyingAgent コンポーネントのいずれかがアタッチされたゲームオブジェクトの子にします。 -
HealthBar オブジェクトを選択し、その親ゲームオブジェクトを Damageable Behavior フィールドにドラッグアンドドロップします。
となっている。今まで作成した、エージェントに対して HealthBar オブジェクトを追加すると以下のようになった。
また、このときの HealthBar のパラメーターとして Damageable Behavior は説明の通り HealthBar を追加したゲームオブジェクトとし、トランスフォームについては画像の通りとした。
2.その他の効果、ビジュアライザー、挙動編 – Death を可視化する
『現在、タワーとエージェントは、破壊されたときにステージから単に削除されます。破壊されたときにさまざまな効果を追加することで、このプロセスをプレイヤーにとってより劇的で目立つようにすることができます。』とのことなので指示に従って Death の可視化を進める。手順については以下の通りとなっている。
-
Tower コンポーネント、AttackingAgent コンポーネント、FlyingAgent コンポーネントを持つゲームオブジェクトに DeathEffect コンポーネントを追加します。
-
Tower または Agent プレハブを Damageable Behavior フィールドにドラッグします。
-
ユニットの破壊時に再生するパーティクルシステムを Death Particle System Prefab フィールドにドラッグアンドドロップします。
-
パーティクルシステムの位置が正しくない場合は、Death Effect Offset を使用して調整します。
上記の手順に従いゲームオブジェクトを改良すると以下の通りとなった。
また、このときの DeathEffect のパラメーターとして以下の通りとした。
- Damageable Behavior : DeathEffect を追加したゲームオブジェクト
- Death Particle System : 「Assets/Particles/SmallDeathExplostionPfx」
- Death Effect Offset : 「x : 0, y : 0, z : 0」
3.その他の効果、ビジュアライザー、挙動編 – タワーにエージェント弱体化の機能を追加する
『エージェントが近くにいるときに、タワーがエージェントを弱体化する機能を追加することもできます。これは単独で、または、エージェントを攻撃しているタワーに加えて使用できます。』とのことなので指示に従ってエージェントの弱体化機能について進める。手順については以下の通りとなっている。
-
Affector ゲームオブジェクトに SlowAffector コンポーネントを加えます。
-
タワーの Targetter ゲームオブジェクトを Targetter フィールドにドラックアンドドロップします。
-
Slow Factor 値を任意に設定します。
-
効果のプレハブを Slow Fx Prefab にドラッグアンドドロップします。
上記の手順に従いゲームオブジェクトを改良すると以下の通りとなった。
また、このときの SlowAffector のパラメーターとして以下の通りとした。
- Tower Targetter : SlowAffector を追加したオブジェクトの Targetter
- Slow Factor : 0.75
- Slow Fx Prefab : 「Assets/Prefabs/Enemies/SlowFx」
4.その他の効果、ビジュアライザー、挙動編 – 継続的に通過を生成するタワーを作成する
『タワーが、継続的に通貨を生成する機能を追加することもできます。』とのことなので指示に従って継続的に通過を生成するタワーついて進める。手順については以下の通りとなっている。
-
Affector ゲームオブジェクトに CurrencyAffector コンポーネントを加えます。
-
設定した間隔で追加する通貨の量を Constant Currency Addition フィールドに設定します。
-
Constant Currency Gain Rate に 1 秒ごとに加える回数を設定します。
上記の手順に従いゲームオブジェクトを改良すると以下の通りとなった。
また、このときの SlowAffector のパラメーターとして以下の通りとした。
- Constant Currency : 1
- Constant Currency (per second) : 0.1
5.その他の効果、ビジュアライザー、挙動編 – エージェントの破壊による報酬の加算
『タワーが敵のエージェントを破壊したときにプレイヤーにより多くの通貨を与えるには、以下の手順を行います。』とのことなので指示に従ってエージェントの破壊による報酬について進める。手順については以下の通りとなっている。
-
エージェントのプレハブに LootDrop コンポーネントを加えます。
-
Loot Dropped フィールドの値を、敵を破壊したときにプレイヤーの合計に加算する通貨の量に設定します。
上記の手順に従いゲームオブジェクトを改良すると以下の通りとなった。
また、このときの LootDrop のパラメーターとして以下の通りとした。
- LootDrop : 16
ここまでで出てきたスクリプトについては次回以降に解説させていただきたいと思う。