c# - Unity OnClick.AddListener 停止工作
问题描述
我正在构建一个纸牌配对游戏。在开始时,游戏会生成 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());
}
}
任何帮助将不胜感激。我已经把头发拔了好几个小时了。
解决方案
首先,我要感谢那些花时间帮助我解答的人。
问题原来是我自己的愚蠢。我不小心禁用了 Canvas 上的 Graphic Raycaster,导致无法单击按钮。重新启用 Raycaster 立即解决了这个问题。
我从这一切中学到了一些东西:当您在游戏运行时向按钮添加侦听器时,该侦听器不会显示在检查器中,但它就在那里。
推荐阅读
- highcharts - 在 Highcharts 中设置自定义积分
- python - 我有一个不知道如何解决的缩进错误
- r - Rstudio中的MongoDB连接与odbc
- vue.js - vue.js 三元样式绑定 - 无效表达式:意外标记']'
- javascript - 扩展运算符更新不需要的元素,同时在数组中添加新元素(ReactJs)
- css - 在 Azure API 管理服务中设计新的开发人员门户
- r - ggplot qplot(快速绘图)填充?
- java - 当limit=6时Java迭代加深搜索卡住
- javascript - Javascript 在多个客户端上保存/恢复小部件
- python - 最长公共序列优化问题