小编Asi*_*imm的帖子

存储值类型变量的引用 C#

我正在尝试为我的游戏创建状态效果,例如那些会随着时间的推移影响玩家统计数据的东西。但是,我无法记住传递的变量,即应该修改的变量。假设你有一些状态效果,在 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)

c# parameters reference value-type unity-game-engine

0
推荐指数
1
解决办法
1533
查看次数