Unity3D代码重复太多

Unity3D Code repeats too much

我正在努力做到,如果你有足够的金子,那么你就需要石头,如果你有足够的石头,那么你就需要足够的金子,但如果你两者都有,那么你可以 "Upgrade"。但如果你两者都得到了,那么它又回到了你需要金币的问题。

    void Update()
    {
        if(enoughgold == true & enoughrocks == true)
        {
            Upgrade.text = "Upgrade to 2014!";
        }

        if(sellrocks.gold > 9999)
        {
            enoughgold = true;
        }
        else
        {
            enoughgold = false;
        }

        if(click.rock > 2999)
        {
            enoughrocks = true;
        }
        else
        {
            enoughrocks = false;
        }

        if(enoughgold == true)
        {
            Upgrade.text = "You need 3,000 Rocks!";
        }
        else
        {
            Upgrade.text = "You need 10,000 Gold!";
        }

        if (enoughrocks == true)
        {
            Upgrade.text = "You need 10,000 Gold!";
        }
        else
        {
            Upgrade.text = "You need 3,000 Rocks!";
        }
    }

这样的事情怎么样?你先看看用户是否有足够的金币和石头,然后再做检查。
我已将 if (enoughgold == true) 简化为 if (enoughgold),因为 == true 是多余的。

void Update()
{
    enoughgold = sellrocks.gold > 9999;
    enoughrocks = click.rock > 2999;

    if (enoughgold && enoughrocks)
        Upgrade.text = "Upgrade to 2014!";
    else if (enoughgold && !enoughrocks)
        Upgrade.text = "You need 3,000 Rocks!";
    else if (!enoughgold && enoughrocks)
        Upgrade.text = "You need 10,000 Gold!";
    else if (!enoughgold && !enoughrocks)
        Upgrade.text = "You need 10,000 Gold and 3,000 Rocks!";
}

您还可以创建一个枚举来处理所有 4 种可能性:如果用户只有足够的石头,如果用户只有足够的金子,如果用户两者都足够,如果用户没有足够的任何。