c# - 如果激活了一个,则阻止一个执行操作(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");
}
}
}
但这里的问题是我无法将其关闭。有人可以指出我做错了什么。
解决方案
我猜你的程序是第一次点击是选择目标,第二次点击是赌注。当您为某人设置标志时,您还应该取消设置另一个标志。
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"
}
}
}
}
推荐阅读
- android - Recycler View 在 portraint 中显示数据,但在横向中不显示数据,即使我在方向更改后再次设置它
- google-sheets - 谷歌表格 SumProduct 反向
- javascript - 使用 webpack 的 ProvidePlugin 时,jQuery 不能作为“$”使用
- angular - How do i load dynamic scripts in angular
- jenkins - Jenkins Exclude Regions with Git 需要工作区(不必要地触发构建)
- java - 会议室无法检索以下列
- reporting-services - 导出的 PDF 中缺少子报表的分页符
- java - 在 JavaFX 中为不同的场景重用相同的按钮
- azure - 从 Powershell 获取实际 Azure Function 端点列表
- java - 如何检查字符串是否在 ANTLR 上下文中匹配?