我正在尝试为与 C# 统一的项目构建升级系统,并且想知道通过一组自定义对象(大小可能会有所不同)来修改变量的最佳方法是什么,这些对象包含变量应该是多少的信息改变了。
一些想法浮现在脑海,但这是我的担忧:
第一个是使用属性:
public float SomeStat{ get{ float modStat = 0; foreach(StatChanger Stat in StatChangers){ modStat += Stat.valueChange; } return modStat; } }
这将非常干净地解决我的问题,但我担心的是,当访问该属性时,例如每一帧,列表中的大量项目都会出现性能下降
第二个是调用一个函数来更新变量并将其存储在另一个变量中,以便每一帧都使用而不会降低性能:
public float someStat = 10; public float someStatModifed; void UpdateStat(){ someStatModifed = someStat; foreach(StatChanger Stat in StatChangers){ someStatModifed += Stat.valueChange; } }
这可行,但我可能会忘记调用它,并且当有多个需要更改的变量时,它会变得更加混乱。
我应该使用这两者的组合还是有更好的方法呢?