
你是否在处理数据变化的时候使用委托或者使用对应的update感到头疼不已使用update属于轮询对于数据处理性能消耗大使用委托订阅取消订阅太麻烦对数据处理响应力度不高那有没有一个好的能及时响应数据更新进度条ui的东西可以使用呢有的兄弟有的我推荐各位使用属性访问器。什么是属性访问器我得说一下一个代码可能大家就明白了public float CoinNumber{get coinNumber;set{coinNumber Mathf.Clamp(value, 0, maxCoin);PlayerData.PigCoinNumber Mathf.RoundToInt(coinNumber);UpdateUI();}}属性是一种数据成员代表对象的状态或特征。它本身不执行动作而是在你访问它get/set时作为副作用去执行一些代码。委托与事件是一种引用类型代表对方法的引用。它们用于行为通知当一个动作发生时例如“金币达到上限”通知其他订阅了该事件的代码去执行它们自己的逻辑。如图所说这是一个方法吗不是但是他可以在某个条件执行另一个方法他是一个变量吗是又不是这个get代表着当他被读取时候执行的变量也就是int aUIKit.GetPanelEnterPigPanel().CoinNumber《前面那坨大家可以不管总之就是某个类的这个数据赋值给了a》让a获取CoinNumber值相当于执行了get方法的到的。是小写coinNumber而这个是私有变量当我们需要coinNumber变化时候执行额外的方法可以写成UIKit.GetPanelEnterPigPanel().CoinNumberxx为你的赋值也就代表着你的Coin被赋值而这样就出发set顺带执行方法在括号里包括不仅限于设置为int类型你的值及时同步你的持久化数据PlayerData.PigCoinNumber 以及更新ui这样的通过给CoinNumber赋值实现一个set方法从而实现改变数据改变UI。这就是属性访问器核心的一点我们在使用的时候通常给我们的持久化数据设置这个来实现一个数据更新其他的ui更新更新避免多次使用委托本质就是其他数据给这个变量赋值会进行方法执行set注意我们使用这个方法后尽量设置外部方法都优先让大写的公共属性CoinNumber赋值或者被赋值私有变量coin不要暴露给外部看方便管理大家在存档的时候如果发现自己这个地方存档存不了可能就是因为用了这个访问器导致的问题切换大小写看看下期我们给大家讲下持久化的东西如何利用set给别人调用