Ваша ошибка возникает из-за того, что вы уменьшаете MaxHealth вместо curHealth (в OnCollisionEnter).Вот несколько советов в следующий раз.
Сделайте отступ в коде
Легче читать, когда вы пишете вопрос и в своих сценариях.
Использовать константы
Переменные, которые не должны изменяться со временем, должны быть объявлены const
:
public const float max_health = 100f;
Таким образом, ваш компилятор сообщит вам об ошибке.
Если в течение жизни вашей программы возможно, что максимальный запас здоровья изменится в зависимости от того, как вы инстанцируете свой класс, вы также можете использовать ключевое слово readonly
:
public readonly float max_health;
Значениеможет быть установлен только в конструкторе класса, тогда вы больше не сможете его изменить.
Использовать отладчик
Эту ошибку можно было легко найти с помощью отладкиинструмент.Проверьте документацию относительно вашей среды разработки.