【发布时间】:2021-02-07 03:36:23
【问题描述】:
我是 Unity 和基于组件的编程新手,遇到了一点小问题。有这么多纸牌游戏,你会认为会有一些关于如何发牌的说明,但没有……所以,我来了。
我创建了一个卡片类、一个卡片数据库和一个卡片组。我在使用甲板类的层次结构中创建了一个游戏对象。这是甲板类:
public class PlayerDeck : MonoBehaviour
{
public int d;
public List<Card> deck;
public List<Card> container;
public List<Card> distributed;
public List<Card> discarded;
public int decksize;
void Start()
{
LoadVariables();
LoadDeck();
ShuffleDeck()
}
public void LoadVariables()
{
d = 0;
decksize = 64;
}
public void LoadDeck()
{
for (int i = 0; i < 64; i++)
{
d = i;
deck[d] = CardDatabase.cardList[i];
}
}
public void ShuffleDeck()
{
for (int i=0; i<decksize; i++)
{
container[0] = deck[i];
int rnd = Random.Range(i, decksize);
deck[i] = deck[rnd];
deck[rnd] = container[0];
}
}
public void DealCards()
{
}
}
当我在调试中运行它时,我可以看到卡片被洗牌了。现在我需要这套牌最初给每个玩家发 7 张牌,就像在 UNO 中一样。这是我不了解基于组件的编程的地方。如果我有一个名为 Deck 的 GameObject 和 4 个其他 GameObject 供玩家使用,那么 4 个玩家的游戏对象如何接收 Deck 发给他们的牌?
任何编码帮助将不胜感激。
【问题讨论】:
-
你洗牌了,然后从 0 到卡牌循环,给 x 数量的玩家。 Uno 的 4x7。查看 % 操作数以了解将当前卡片交给哪个玩家。
-
不,这不适用于基于组件的编程。这只是我已经知道的直接编程。
-
@user3623689 如果verified_tinker 的回答对您有帮助,请考虑accepting it
标签: unity3d