通过委托与事件监听状态改变来更新UI

该博文涵盖的知识点 1. C# 委托 2. 如何利用委托监听事件以此更新显示 所要完成目标 我们刚开始做好的部分UI界面如下图所示: 观察左边的红色方框,我

该博文涵盖的知识点

1. C# 委托 2. 如何利用委托监听事件以此更新显示

所要完成目标

我们刚开始做好的部分UI界面如下图所示:


观察左边的红色方框,我们先做了实例的姓名,头像,slider,和Label等,在运行游戏时候需要更新相应的属性。

在下面的脚本中,我们分别更新:左边方框中的nameLabel(黄晓明),energyLabel(50/100),toughenLabel(32/50)以及levelLabel(89);和右边的两个Label(12345678和12345678)。如何更新呢?我们借助委托注册事件来监听属性的改变,下面不再做解释,脚本中注释说明了一切!!!!

脚本、Unity相关设置


这里只使用三个脚本来学习如何使用委托来注册事件,以此监听属性的变化。如上图所示,PlayerBar脚本绑定在player-bar上,PlayerInfo脚本绑定在GameObject(空的游戏物体,作为控制)上,TopBar脚本绑定在top-bar上,分别在这些脚本中获取Unity Hierarchy中的相关属性,然后进行更新。下面分别是三个脚本:PlayerInfo,PlayerBar以及TopBar
using UnityEngine;
using System.Collections;public enum InfoType{Name,HeadPortrait,Level,Power,Exp,Diamond,Coin,Energy,Toughen,All
}public class PlayerInfo : MonoBehaviour {// 创建该类 为单例模式、public static PlayerInfo _instance;#region propertyprivate string _name;private string _headPortrait;private int _level = 1;private int _power = 1;private int _exp = 0;private int _diamond;private int _coin;private int _energy;private int _toughen;#endregion// 体力和历练的计时器;一分钟体力加1private float energyTimer