Unity, создайте класс карт и назовите его в статическом классе - PullRequest
0 голосов
/ 04 ноября 2018
public static class CardManager
{
    private static DataToolbox m_toolBox;
    private static Card[] m_cardDeck = new Card[3];
    private static readonly List<GameObject> m_usedCards;

    public static void DrawCards()
    {
        GameObject[] _deckSlots = Utilities.GetChildren(GameObject.Find("Deck")).ToArray();

        for (int i = 0; i < 3; i++)
        {
            m_cardDeck[i].Instance(GDEDataManager.GetRandom<GDEFoodData>());

            _deckSlots[i].GetComponentInChildren<Image>().sprite = m_cardDeck[i].GetFoodSprite;

            _deckSlots[i].GetComponentInChildren<TextMeshProUGUI>().SetText(m_cardDeck[i].GetFoodName);
        }
    }

    public class Card
    {
        private static string foodName;
        private static string foodCode;
        private static Sprite cardSprite;

        public void Instance(GDEFoodData foodData)
        {
            foodName = foodData.filename;
            foodCode = foodData.Key;
            cardSprite = DataToolbox.Instance.GetFoodSprite(foodCode);
        }
        public string GetFoodName
        {
            get { return foodName; }
        }
        public string GetFoodCode
        {
            get { return foodCode; }
        }
        public Sprite GetFoodSprite
        {
            get { return cardSprite; }
        }
    }
}

Привет, я пытаюсь создать класс Card внутри другого класса CardManager. Карта класса имеет конструктор, который получает переменные, такие как: имя, спрайт и т. Д. До сих пор я не мог заставить его работать внутри функции DrawCards, из которой я хочу получить эти переменные после того, как они были установлены. Я чувствую, что это глупая ошибка, но я не могу понять, как ее решить. Любая помощь очень ценится.

Спасибо, Filippo

Обновление:

Хорошо, я изменил это на это, и теперь это работает. Я просто путал конструкторы и методы. Спасибо за совет!

public class Card
{
    public string foodName;
    public string foodCode;
    public Sprite cardSprite;

    public Card (GDEFoodData foodData)
    {
        foodName = foodData.filename;
        foodCode = foodData.Key;
        cardSprite = DataToolbox.Instance.GetFoodSprite(foodCode);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...