C# Unity和Visual Studio-按钮不起作用的问题

C# Unity和Visual Studio-按钮不起作用的问题,c#,visual-studio,unity3d,blackjack,C#,Visual Studio,Unity3d,Blackjack,所以我从YouTube下载了Sloan Kelly纸牌游戏项目最终版本的资产文件,当时我正在玩这个游戏,一切正常 第二天,我重新打开了游戏,这个项目的“粘贴按钮”不再工作了。它出现在屏幕上,看起来很难处理,但它不会按下 我对代码做了一些修改,使其更易于阅读,但我认为我没有对这个按钮做任何修改。代码的其余部分运行良好,仅此一个按钮 我不确定如何在这个场景中链接我的项目资产包,但我可以向您展示按钮的代码,我只是想知道是否有人可以立即看到问题/您能否告诉我如何链接整个文件,以便您可以更好地了解正在发生

所以我从YouTube下载了Sloan Kelly纸牌游戏项目最终版本的资产文件,当时我正在玩这个游戏,一切正常

第二天,我重新打开了游戏,这个项目的“粘贴按钮”不再工作了。它出现在屏幕上,看起来很难处理,但它不会按下

我对代码做了一些修改,使其更易于阅读,但我认为我没有对这个按钮做任何修改。代码的其余部分运行良好,仅此一个按钮

我不确定如何在这个场景中链接我的项目资产包,但我可以向您展示按钮的代码,我只是想知道是否有人可以立即看到问题/您能否告诉我如何链接整个文件,以便您可以更好地了解正在发生的事

提前谢谢

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class GameController : MonoBehaviour 
{
    int dealersFirstCard = -1;

    public CardStack player;
    public CardStack dealer;
    public CardStack deck;

    public Button hitButton;
    public Button stickButton;
    public Button playAgainButton;

    public Text winnerText;

    /*
     * Cards dealt to each player
     * First player hits/sticks/bust
     * Dealer's turn unyil minimum of 17 value in hand
     * Dealers cards: first card is hidden, other cards are facing
     */


    #region Hit

    public void Hit()
    {
        player.Push(deck.Pop());
        if (player.HandValue() > 21)
        {
            hitButton.interactable = false;
            stickButton.interactable = false;
            StartCoroutine(DealersTurn());
        }
    }
    #endregion
    #region Stick
    public void Stick()
    {
        hitButton.interactable = false;
        stickButton.interactable = false;
        StartCoroutine(DealersTurn());
    }
    #endregion
    #region Play Again
    public void PlayAgain()
    {
        playAgainButton.interactable = false;

        player.GetComponent<CardStackView>().Clear();
        dealer.GetComponent<CardStackView>().Clear();
        deck.GetComponent<CardStackView>().Clear();
        deck.CreateDeck();

        winnerText.text = "";

        hitButton.interactable = true;
        stickButton.interactable = true;

        dealersFirstCard = -1;

        StartGame();
    }

    #endregion

    void Start()
    {
        StartGame();
    }



    void StartGame()
    {
        for (int i = 0; i < 2; i++)
        {
            player.Push(deck.Pop());
            HitDealer();
        }
    }

    void HitDealer()
    {
        int card = deck.Pop();

        if (dealersFirstCard < 0)
        {
            dealersFirstCard = card;
        }

        dealer.Push(card);
        if (dealer.CardCount >= 2)
        {
            CardStackView view = dealer.GetComponent<CardStackView>();
            view.Toggle(card, true);
        }
    }
    #region Dealers turn
    IEnumerator DealersTurn()
    {
        hitButton.interactable = false;
        stickButton.interactable = false;

        CardStackView view = dealer.GetComponent<CardStackView>();
        view.Toggle(dealersFirstCard, true);
        view.ShowCards();
        yield return new WaitForSeconds(1f);

        while (dealer.HandValue() < 17)
        {
            HitDealer();
            yield return new WaitForSeconds(1f);
        } 

        if (player.HandValue() > 21 || (dealer.HandValue() >= player.HandValue() && dealer.HandValue() <= 21))
        {
            winnerText.text = "You Lose!";
        }
        else if (dealer.HandValue() > 21 || (player.HandValue() <= 21 && player.HandValue() > dealer.HandValue()))
        {
            winnerText.text = "You Win!";
        }
        else
        {
            winnerText.text = "The house wins!";
        }

        yield return new WaitForSeconds(1f);
        playAgainButton.interactable = true;
    }
    #endregion

}
使用UnityEngine;
使用系统集合;
使用UnityEngine.UI;
公共类游戏控制器:单行为
{
int dealersFirstCard=-1;
公共纸牌机;
公共信用卡经销商;
公共卡栈甲板;
公共按钮点击按钮;
公共按钮粘贴按钮;
公共按钮播放按钮;
公共文本winnerText;
/*
*发给每位玩家的牌
*第一名球员击球/棍棒/胸围
*经销商的回合unyil最低值为17
*经销商卡:第一张卡是隐藏的,其他卡是面对的
*/
#区域打击
公开无效点击()
{
player.Push(deck.Pop());
如果(player.HandValue()>21)
{
hitButton.interactiable=false;
stickButton.interactiable=false;
开始例行程序(DealersTurn());
}
}
#端区
#区域棒
公共空棒()
{
hitButton.interactiable=false;
stickButton.interactiable=false;
开始例行程序(DealersTurn());
}
#端区
#地区重赛
公共图书馆
{
playAgainButton.interactiable=false;
player.GetComponent().Clear();
dealer.GetComponent().Clear();
deck.GetComponent().Clear();
deck.CreateDeck();
winnerText.text=“”;
hitButton.interactiable=true;
stickButton.interactiable=true;
dealersFirstCard=-1;
StartGame();
}
#端区
void Start()
{
StartGame();
}
void StartGame()
{
对于(int i=0;i<2;i++)
{
player.Push(deck.Pop());
HitDealer();
}
}
无效经销商()
{
int card=deck.Pop();
if(dealersFirstCard<0)
{
dealersFirstCard=信用卡;
}
经销商。推(卡);
如果(dealer.CardCount>=2)
{
CardStackView视图=dealer.GetComponent();
视图。切换(卡片,真);
}
}
#地区经销商转向
IEnumerator DealersTurn()
{
hitButton.interactiable=false;
stickButton.interactiable=false;
CardStackView视图=dealer.GetComponent();
查看.切换(dealersFirstCard,true);
view.ShowCards();
返回新的等待秒(1f);
while(dealer.HandValue()<17)
{
HitDealer();
返回新的等待秒(1f);
} 
如果(player.HandValue()>21 | | |(dealer.HandValue()>=player.HandValue()&&dealer.HandValue()21 | |(player.HandValue()dealer.HandValue()))
{
winnerText.text=“你赢了!”;
}
其他的
{
winnerText.text=“房子赢了!”;
}
返回新的等待秒(1f);
playAgainButton.interactiable=true;
}
#端区
}

当庄家轮到你时,你的按钮就变得不可交互。之后,从代码中,如果你再也不重新启用它-这应该很容易用调试命令来证明。在再次播放按钮上重新启用。在提供的代码中,我看不到任何显示玩家第二次轮到的余量的内容。并且当交易开始时rs回合开始后,它将禁用打杆,在新游戏开始前,任何东西都不会重新启用