我正在尝试为我的游戏创建状态效果,例如那些会随着时间的推移影响玩家统计数据的东西。但是,我无法记住传递的变量,即应该修改的变量。假设你有一些状态效果,在 10 秒内减少你的健康 10 %是一旦构造函数消失了,这两个之间的引用就会被破坏,从那时起我只编辑一些从未使用过的变量。
这是我如何实例化状态效果
/// <summary>
/// Creates a status effect which ticks at specified period of time without any condition.
/// </summary>
public StatusEffect(float increase, EffectIncreaseType increaseType, float timeOfStatusEffect, float tickTime)
{
this.increase = increase;
this.endTimeOfStatusEffect = Time.time + timeOfStatusEffect;
this.tickTime = tickTime;
increaseCalculator = increaseType == EffectIncreaseType.Percentage ? increaseCalculator = (a) => (int)(increase / 100f * a) : increaseCalculator = (a) => (int)increase;
}
Run Code Online (Sandbox Code Playgroud)
这就是我现在如何使用它
public bool TryTrigger(ref int affectedProperty)
{
if (condition.Invoke(affectedProperty))
{
affectedProperty += …Run Code Online (Sandbox Code Playgroud)