当玩家与激光碰撞时,健康栏不会减少

时间:2019-05-13 18:36:19

标签: c# unity3d

每当玩家与敌人的激光碰撞时,我都试图降低其健康状况,但是我编写的脚本无法正常工作,并且给我以下错误:

  

资产/脚本/激光/HealthManager.cs(19,21):错误CS0029:无法将void类型隐式转换为UnityEngine.UI.Slider。

有人可以花一些时间查看我的代码并告诉我healthbar为什么不起作用吗?谢谢。

HealthManager脚本:

map

1 个答案:

答案 0 :(得分:3)

HealthBar是Slider类型。 CalculatingHealth是一个不会返回任何内容的函数(因此无效)。 您尝试将变量初始化设置为将Slider类型键入为无效值。这是不可能的。

您可以:

float CalculatingHealth()
{
    return healthdecrease =  CurrentHealth / MaxHealth;
}

还有

HealthBar.value = CalculatingHealth();

注意:https://docs.unity3d.com/ScriptReference/UI.Slider-value.html