点击Continue按钮index未递增:Continue10函数疑似未触发调用排查
问题排查与解决办法
先确认按钮绑定是否真的生效
别看截图显示绑了Continue10,实际可能有坑:- 绑定的脚本对象是不是场景里真实存在的?别拖成预制体或者空对象了
- 按钮的
OnClick事件里,有没有误选其他函数/对象,或者重复绑定导致冲突 - 运行时切到Inspector,看看绑定的脚本组件有没有被禁用
检查
index变量的定义- 必须是类的成员变量(比如
private int index = 0;),要是定义成函数里的局部变量,每次调用都会重置成初始值,自然不会递增 - 搜一下整个脚本,有没有其他地方把
index重置成0了,比如其他函数里误写了index = 0;
- 必须是类的成员变量(比如
用断点验证函数到底跑没跑
在Continue10()第一行加个断点,运行游戏点按钮:- 断点没触发?那肯定是按钮绑定的问题,重新拖拽脚本对象到按钮的
OnClick,手动选Continue10函数,别靠自动补全 - 断点触发了?那看一下
index当前值,自增后是不是被其他逻辑给改回去了
- 断点没触发?那肯定是按钮绑定的问题,重新拖拽脚本对象到按钮的
代码逻辑调整建议
你现在的代码是先把index加1再进switch,第一次点击时index从0变1,直接走case 1的逻辑,要是你预期第一次点击显示对话,得把自增放在switch之后:public void Continue10() { dialogue = true; switch (index) { case 0: text.text = "Prime and Primal welcome to Earth!"; image.sprite = mirage; break; case 1: conversation.SetActive(false); anim.SetTrigger("throw"); Instantiate(transwarpKey, point.position, Quaternion.identity); break; } index += 1; // 先执行当前index对应的逻辑,再递增索引 }
内容的提问来源于stack exchange,提问作者AmoghUrs
相关产品推荐
相关产品推荐

