問題となる症状はわかりました。さて、
問題点はどこにあるでしょうか。それを
特定することで
改善方法を考えていくことが出来るようになります。
耐久力の値が減算処理によってマイナスになることは想定されます。常にエネミーの攻撃力が、耐久力の値をピッタリ 0 にしてくれるとは限らないためです。
そうなると、問題となるのは、耐久力の値自体でも、エネミーの攻撃力でもなく、
耐久力の値が 0 を下回ったときに、それをそのままにしてしまっている部分にあります。
減算処理の後に、もしも耐久力の値がマイナスになった場合には、0 にする、という処理を追加すれば改善されるはずです。
<改善動画 マイナス表示にならないように制御する>
動画ファイルへのリンク
このとき、以下のような処理を記述してもよいですが、この書式ですと、マイナス方向の制限は改善されますが、
プラス方向の制限、つまり、今後、ゲームの処理を実装していく上で、拠点の耐久力の値を回復するような処理が実装された場合には、
耐久力の値が最大値を超えて回復するような場合には、さらに新たな制限文を追加する必要があります。
<マイナス方向の制限の例> => プラス方向の制限はない
if(durability <= 0){
durability = 0;
}
そうなると処理が長くなるだけではなく、その回復処理を追加した場合に、この部分を再度修正し直さなければならなくなります。
こういった、上限値と下限値を制限したい場合には、Unity には便利なメソッドがあります。今回はそちらを利用して、使い方を学習しましょう。