Blood Slot Display and Damage
Introduction
在战斗系统中,血条显示必不可少,而伤害的浮动数值表现也与血条相辅相成。这个DEMO主要实现了简单的战斗中血条表现与伤害数值浮动显示
Blood Slot
在Unity3D中可以用UGUI中的Slider简单实现一个血条UI:
- 创建一个Canvas与Slider,并删除Slider中的Handle Slide Area
- 设置Target Grahpic为Fill组件,并选择想要的血条覆盖色(如红色)
- 设置Slider最大值
- 修改Background与Fill的Rect Transform,全部置0,保证覆盖色能覆盖整个血条
- 设置覆盖方向(Left to Right or oppsite)
- 拖动Value条即可看见血条变化
有了血条UI后,接下来的工作就是将血条与角色结核。这里可以直接在角色的Class中添加一个UI的Slider变量然后绑定到一个Slider控件上,也可以封装一层Blood类当做控制器用于管理血条,解耦合,避免角色对于UI控件的直接操作。不管怎么实现,最重要的都是:
- 实现其中的onIsHited方法来控制血条值
- 实现BloodValueChange来改变UI的血条变化
onIsHited的代码主要如下:
//Blood.onHited(float damage)
public void onIsHited(float damage)
{
bloodValue -= damage;
if (bloodValue < BLOOD_VALUE_MIN)
{
bloodValue = BLOOD_VALUE_MIN;
}
bloodDisplay.BloodValueChange(bloodValue);
}
而BloodValueChange则通过Tween插件来做:
public void BloodValueChange(float newBloodValue)
{