/// <summary> /// 这个是根据逻辑State /// 转化为渲染Props的部分 /// 自行处理 /// 需要注意的是,不要刷新整个页面,只要刷新部分更新的数值即可 /// </summary> /// <param name="server"></param> public void StateToProps(Server_HeroData server) { // this.Props.Name = server.Name; this.Props.Hp = server.Hp; this.Props.MaxHp = server.MaxHp; //这里表现出State不一定跟Props完全一样, //有些ui的渲染状态,需要根据State算出来 if (server.Hp < 50) { this.Props.HpColor = Color.red; } else { this.Props.HpColor = Color.blue; } //提交修改 this.CommitProps(); }
/// <summary> /// 这个是根据逻辑State /// 转化为渲染Props的部分 /// 自行处理 /// 需要注意的是,不要刷新整个页面,只要刷新部分更新的数值即可 /// </summary> /// <param name="server"></param> public void StateToProps(Server_HeroData server) { //下面逻辑 可以写个函数 批量判断 if (server.Name != null && this.Props.Name != server.Name) { this.Props.Name = server.Name; this.Props.SetPropertyChange(nameof(Props_HeroData2.Name)); } if (this.Props.Hp != server.Hp) { this.Props.Hp = server.Hp; this.Props.SetPropertyChange(nameof(Props_HeroData2.Hp)); //这里表现出State不一定跟Props完全一样, //有些ui的渲染状态,需要根据State算出来 if (server.Hp < 50) { this.Props.HpColor = Color.red; } else { this.Props.HpColor = Color.blue; } this.Props.SetPropertyChange(nameof(Props_HeroData2.HpColor)); } if (this.Props.MaxHp != server.MaxHp) { this.Props.MaxHp = server.MaxHp; this.Props.SetPropertyChange(nameof(Props_HeroData2.MaxHp)); } //提交修改 this.CommitProps(); }