【发布时间】:2021-11-24 06:41:30
【问题描述】:
我正在使用 Unity3D 和 C# 来创建游戏。当玩家赢得关卡时,我有一些代码将硬币数加 5。这是由以下内容组成的:
if (scoreText.scoreNum >= NumberOfBricksNeeded)
{
if(HasClickedOk == false)
{
LevelFinishedUIs.SetActive(true);
if (IsPlayingCampaign1 == true)
{
coins.CoinNumber += 5;
dead.GameOver = false;
FinishedLevel1UI.SetActive(true);
Debug.Log("FinishedLevel");
IsPlayingCampaign1 = false;
isPlayingCampaign = false;
HasClickedOk = true;
One.sprite = OneFin;
skins.HasEarnedGoldSkin = true;
skinSaver.Gold = true;
campaignSaver.LevelsCompleted = 1;
}
if (IsPlayingCampaign2 == true)
{
coins.CoinNumber += 5;
dead.GameOver = false;
FinishedLevel2UI.SetActive(true);
Debug.Log("FinishedLevel");
IsPlayingCampaign2 = false;
isPlayingCampaign = false;
HasClickedOk = true;
TwoA.sprite = TwoAFin;
skins.HasEarnedMeteorSkin = true;
skinSaver.Meteor = true;
campaignSaver.LevelsCompleted = 2;
}
虽然第一个有效并加了 5,但第二个无效。问题是它在数字上加了 10 而不是 5。我检查了诸如“HasClickedOk”和“isPlayingCampaign_”之类的值,但它们都是适当的值。最初,我以为它运行了两次。但是,我将硬币的数量记录到控制台,它们直接增加了 10。不是 5 两次。有没有可能我错过了什么?
谢谢,
【问题讨论】: