C# unity将画布面板中的选定卡片添加到字典
我在一个场景中展示了一些卡片,它们是带有以下脚本的游戏对象:C# unity将画布面板中的选定卡片添加到字典,c#,unity3d,C#,Unity3d,我在一个场景中展示了一些卡片,它们是带有以下脚本的游戏对象: public class CardClick : MonoBehaviour { DeckBuildManager deckManager; // Start is called before the first frame update void Start() { deckManager = FindObjectOfType<DeckBuildManager>();
public class CardClick : MonoBehaviour
{
DeckBuildManager deckManager;
// Start is called before the first frame update
void Start()
{
deckManager = FindObjectOfType<DeckBuildManager>();
}
// Update is called once per frame
public void AddToDeck()
{
if (deckManager.DeckCards.Count <= 9)
{
if (!deckManager.DeckCards.ContainsValue(this.gameObject.GetComponent<CardValues>().dataCard.cardName))
{
deckManager.DeckCards.Add(this.gameObject.GetComponent<CardValues>().dataCard, this.gameObject.GetComponent<CardValues>().dataCard.cardName);
}
}
}
}
公共类CardClick:MonoBehavior
{
DeckBuildManager deckManager;
//在第一帧更新之前调用Start
void Start()
{
deckManager=FindObjectOfType();
}
//每帧调用一次更新
public void AddToDeck()
{
如果(deckManager.DeckCards.Count
public void ClickOnCard()
{
如果(deckManager.DeckCards.Count保存这些卡片的字典是什么?在您发布的屏幕截图中,数据卡
字段似乎为空。您确定这两个条件是否都被传递了吗?DeckCards
的当前计数是多少?是否低于9?是否确实要查找包含值
或者您想使用ContainsKey
?@teebkne我在游戏中加载所有数据,数据正常,我可以在游戏进行时制作另一个屏幕截图。@teebkne我从数据库中读取卡值。我看不到层次结构设置的任何直接问题。UI元素的工作方式是层次结构越低,越高因此,单击将命中最低的元素。这意味着,如果有任何类型的UI覆盖了卡下的屏幕,则单击将被他们吃掉。我可以编写一个答案来帮助调试,以查看是否存在这种情况。
public void ClickOnCard()
{
if (deckManager.DeckCards.Count <= 9)
{
if (!deckManager.DeckCards.ContainsValue(this.gameObject.GetComponent<CardValues>().dataCard.cardName))
{
deckManager.DeckCards.Add(this.gameObject.GetComponent<CardValues>().dataCard, this.gameObject.GetComponent<CardValues>().dataCard.cardName);
}
}
}