【发布时间】:2020-09-30 21:09:02
【问题描述】:
我正在开发一款纸牌配对游戏。在开始时,游戏会生成 16 个按钮(卡片),每个按钮都有一个监听器,以便在单击时做出响应。现在,直到昨天,这一切都很好。
今天我尝试在场景中添加一个粒子发射器(未更改代码)。当我运行场景来测试发射器时,按钮不起作用。我移除了发射器,但问题仍然存在。我检查了检查器中的按钮,没有任何 onClick 事件被添加到其中。
无论我做什么,我似乎都无法将 onClick 添加到按钮上。
这是我的代码:
void Start()
{
GetButtons();
AddListeners();
AddGamePuzzles();
ShuffleSprites(gamePuzzles);
gameGuesses = gamePuzzles.Count / 2;
}
void GetButtons()
{
GameObject[] BtnObjects = GameObject.FindGameObjectsWithTag("PuzzleButton");
for(int i = 0; i < BtnObjects.Length; i++)
{
btns.Add(BtnObjects[i].GetComponent<Button>());
btns[i].image.sprite = bgImage;
}
}
void AddListeners()
{
foreach (Button btn in btns)
{
btn.onClick.AddListener(() => PickAPuzzle());
}
}
任何帮助将不胜感激。我已经拉了几个小时的头发了。
【问题讨论】:
-
您不需要使用“+=”注册按钮。在以下帖子中查看我的答案:stackoverflow.com/questions/37165402/…
-
控制台是否显示任何错误?你有没有放一些日志来看看到底发生了什么?您的代码是否通过 AddListeners(),AddListeners 是否获得了 btns 的正确值?等
标签: c# unity3d debugging button onclick