首页 > 解决方案 > 如果激活了一个,则阻止一个执行操作(C# UNITY)

问题描述

美好的一天,我只想问我该怎么做。

如果另一个动作被激活,我需要阻止一个动作做某事,反之亦然。这是我到目前为止编写的代码。

if (hit == "spr_player")
    {
        betOnPlayer = true;
        if (betOnBanker)
        {
            Debug.LogError("You already bet on the banker cannot bet on the player"); ;
        }
        else
        {
            if (betOnPlayer)
            {
                bet[0] = chip;
                chips_bet[0].enabled = true;
                Chips(chip, 0);
                Debug.LogError("Betting on the player");
            }
            else
            {
                Debug.LogError("You can not bet on the Player");
            }
        }
    }

else if (hit == "spr_banker")
    {
        if (betOnPlayer)
        {
            Debug.LogError("You already bet on the banker cannot bet on the player");
            betOnBanker = true;
        }
        else
        {
            if (betOnBanker)
            {
                bet[4] = chip;
                chips_bet[4].enabled = true;
                Chips(chip, 4);
                Debug.LogError("Betting on the banker");
            }
            else
            {
                Debug.LogError("You can not bet on the Banker");
            }
        }
    }

但这里的问题是我无法将其关闭。有人可以指出我做错了什么。

标签: c#unity3d

解决方案


我猜你的程序是第一次点击是选择目标,第二次点击是赌注。当您为某人设置标志时,您还应该取消设置另一个标志。

if (hit == "spr_player")
{

    if (betOnPlayer)
    {
        // bet on player
    }
    else
    {
        betOnPlayer = true;
        betOnBanker = false;
    }
}
else if (hit == "spr_banker")
{
    if (betOnBanker)
    {
        // bet on banker
    }
    else
    {
        betOnPlayer = false;
        betOnBanker = true;
    }
}

另一个答案:

string currentSelect = "";

void Update() {

    if(YOUR_INPUT_EVENT) {
        if (hit == "spr_player")
        {        
            if (currentSelect == "Player")
            {
                // bet on player
            }
            else
            {
                currentSelect = "Player"
            }
        }
        else if (hit == "spr_banker")
        {
            if (currentSelect == "Banker")
            {
               // bet on banker
            }
            else
            {
                currentSelect == "Banker"
            }
        }

    }
}

推荐阅读