前提・実現したいこと
Slider の値を敵モンスターの数に応じて、少しずつ減らしたいです。
画面上に敵モンスターがいるとします。
この敵モンスターが画面上にいると、
時間とともに(たとえば1秒ごとに)、
モンスターの数に応じて
Sliderの値がどんどん減少していく、という処理をしたいです。
発生している問題・エラーメッセージ
1体のモンスターが画面上にいる場合は、解決できました。
しかし、同じモンスターが画面に複数いる場合にも、
Slider の値が1体分しか減りません。
たとえば、3体いるなら、3体分減少させたいです。
そして、
1体倒して2体に減ったら、2体分、というように変化させたいです。
該当のソースコード
敵モンスター側のコードが以下になります。
float Damage = 1.0f; float timeLeft;
……
void Update()
{
timeLeft -= Time.deltaTime;
if (timeLeft <= 0.0)
{
timeLeft = 1.0f;
stressSliderManager.Minus(Damage); }
次に、スライダー側(空のGameObjectに付与しているスクリプト)が以下です。
public void Minus(float Damage)
{
HPnow -= Damage;
MySlider.value = HPnow;
}
試したこと
まずは敵モンスターをプレハブとして、同じものを3体配置。
しかし、上記のDamage = 1.0f にある通り、1秒に1ずつしか減りませんでした。
次に、メソッドの名前が同じのを使ってるからいけないのかも、と考え、
モンスターは同じでも、名前を変えたメソッドを用意して書き換えました。
(Minus2nd といったようにです。)
やはり、中身が同じだからなのか(?)1ずつしか減りません。
3体の場合、1秒に3減らしていくにはどのように記述すればよいでしょうか。
ご教授よろしくお願い致します。

あなたの回答
tips
プレビュー