在override方法中修改变量会将它们重置为false

时间:2014-05-05 12:59:45

标签: c# mono unity3d override abstract

我有一个抽象类:

public abstract class HitableAbstract : MonoBehaviour
{
    public float TimeLeft;

    public abstract bool OnHit();
}

和继承自此类的子类:

public class Target : HitableAbstract
{
    bool isHit = false;

    public override bool OnHit ()
    {
        if (!isHit)
        {
            isHit = true;
            return (true);
        }

        return (false);
    }
}

然而,在调用onHit之后,isHit保持为false。这是我应该知道的抽象类的某种行为吗?

在互联网上,我只能找到'获取覆盖方法'。没有任务..

1 个答案:

答案 0 :(得分:1)

您可能正在点击一个变量并使用Unity检查器检查另一个变量的状态。

您发布的代码是正确的,并且没有隐藏的'抽象类的行为。