Unity中人物属性面板UI的构成

有许多的游戏都会有实现角色属性面板的UI,常见的比如血量、蓝条、防御等等,今天就做一个简单的示例。

角色中的属性构成

在此次demo中角色属性包含血量、蓝条和护甲。我们首先在Player脚本中定义。

//上限
public float MaxHp = 3f;
public float MaxMp = 5f;
public float MaxDefense = 5f;
//初始血量
private float hp = 3f;
private float mp = 5f;
private float defense = 5f;

UI面板中绑定各个字段

我们可以简单设置一个UI的面板。

其中保证文字的一致性,我们可以让"/"左侧的文字居右,右侧的文字居左。

角色脚本中更新数据的同时唤醒事件

 为了保证数据的更新一致性,可以添加一个事件,用于在数据更新时通知UI面板更新。为了区分变更的到底是哪个数据,需要现在UI挂载的脚本添加一个枚举类,用于区分传递的数据。

UI面板挂载的脚本:

public enum Attr
{
    HP,
    MP,
    DEFENSE,
}

这样,在角色脚本中就可以通过UI脚本中的Attr发送不同的数据。

//在数据发生变化时唤醒该事件,并传递一个属性
public event EventHandler<OnAttrChangedEventArgs> OnAttrChanged;
public class OnAttrChangedEventArgs : EventArgs
{
    public PlayerAttributePanelUI.Attr attr;
}

public float HP
{
    get { return hp; }
    set
    {
        if (hp != value)
        {
            hp = value;
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值