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