体力と攻撃
CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 59/63。
チャレンジ
中級ハンターがダメージを与えるようになりました。これまでのレッスンの内容はすべて維持してください。Player には Health スクリプトがあり(Inspector で hp を 3 に設定します)、Hunter のプレハブでは新しい knockback フィールドを 12 に設定します。
Health を完成させましょう。
amountをhpから差し引き、残りをHP: 2のようにログに出力する、TakeDamage(int amount)という public メソッド。hpが 0 になったら、Game overをログに出力し、プレイヤーのPlayerスクリプトを無効にして、矢印キーが効かなくなるようにします。hpが 0 になった後は、それ以上攻撃を受けても何も起きないようにします。値も変わらず、ログも出力されません。
Hunter に追加しましょう。
knockbackフィールド。- ハンターが Health を持つもの(プレイヤーだけが持っています)にぶつかったとき、その
TakeDamage(1)を呼び出し、地面に沿ってハンターからまっすぐ離れる方向へ、knockbackの Impulse で弾き飛ばします。
Play を押して、どれだけ長く生き残れるか試してから、Check を押してください。
自分で試してみよう
using UnityEngine;
public class Health : MonoBehaviour
{
// 後のレッスンでここにプレイヤーのヒットポイントを実装します。
}