Unity и Visual Studio - проблемы с не работающей кнопкой - PullRequest
0 голосов
/ 01 ноября 2018

Итак, я скачал файл ресурсов окончательной версии карточного игрового проекта Слоана Келли с YouTube Ссылка на видео, где вы можете скачать его в описании , и я поиграл с игрой, в которой он был все работает нормально.

Затем я снова открыл проект игры на следующий день, и кнопка «Stick» больше не работает. Он появляется на экране и кажется неразрешимым, но не нажимает.

Я сделал несколько изменений в коде, чтобы их было легче читать, но я не думал, что что-то изменил с этой кнопкой. Остальная часть кода работает нормально только эта кнопка.

Я не уверен, как связать свой пакет ресурсов проекта в этом виде, но я могу показать вам код для кнопки и просто задавался вопросом, может ли кто-нибудь сразу увидеть проблему / не могли бы вы сказать мне, как связать весь пакет? файл, чтобы вы могли лучше понять, что происходит.

Заранее спасибо

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

}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...