unity2d血包问题

加血没有按照我设定的数字加,每次直接加满到最大值,Debug了也没问题,求帮忙看看咋回事

img

img

currentHealth = Mathf.Clamp(currentHealth+value, 0, 100);
改为
currentHealth = Mathf.Clamp(currentHealth, 0, 100);
或者前面的+=去掉,直接保留后面的一句,否则等于连续加了2次value
还有,代码不全,你给HealthBar.CurrentHealth赋值的时候就没触发什么事件吗
HealthBar.CurrentHealth是个属性吧,它有set函数吧,里面的代码是什么,是不是这里给血量拉满了

图片很模糊,不过看了下吧
你在第4行将当前血量值(currentHealth)增加了value,然后在第5行又使用Mathf.Clamp将currentHealth加上value的结果限制在0和最大值maxHealth之间,最终赋值给了currentHealth。
这样做的结果是无论value的值如何,currentHealth都会被限制在0和maxHealth之间,即血量最终都会被加满。
你可以在Debug.Log("Adding" + value + health') ;语句后加入另外一句Debug.Log("Clamped health: " + currentHealth)来检查当前血量值是否被正确地限制了。

img