该博文涵盖的知识点
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 property
private 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
// 体力和历练的计时器;一分钟体力加1
private float energyTimer