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);
}
}