Unity 2022.3.5f1中Button的onClick事件参数及调用失败问题咨询
你看到的Target Assembly、Mode、Arguments这些参数,是因为开启了动态调用模式(而非默认的可视化拖拽绑定),下面逐个解释参数规则,再给出调用失败的排查解决步骤:
参数填写规则
- Target Assembly:选择包含目标脚本的程序集。默认创建的C#脚本都在
Assembly-CSharp里,若使用自定义程序集,选对应的名称即可。 - Mode:
Static:用于调用静态函数,无需指定Target ObjectInstance:用于调用实例函数,必须把挂载了目标脚本的对象拖到Target Object输入框
- Arguments:如果目标函数有参数,按参数类型和顺序填写对应值;无参数则留空。
调用失败排查步骤
- 校验程序集选择:确认
Target Assembly和脚本所在程序集一致,多数调用失败都是这里选错了(比如误选Assembly-CSharp-Editor而非Assembly-CSharp)。 - 匹配Mode与函数类型:如果是实例函数,
Mode必须选Instance,且Target Object必须是挂载了目标脚本的有效对象。 - 函数名完全匹配:严格匹配函数的名称(包括大小写),比如函数是
public void OnBtnClick(),就必须填OnBtnClick,不能少字或错大小写。 - 检查函数访问权限:目标函数必须是
public,私有/保护函数无法通过动态调用触发。 - 更简单的替代方案:如果不想折腾这些参数,直接用默认绑定方式——点击onClick列表的
+,把目标对象拖到框里,然后从下拉菜单直接选择脚本和对应函数,全程不需要手动填这些参数,出错概率更低。
相关界面截图


内容的提问来源于stack exchange,提问作者master kirbys
相关产品推荐
相关产品推荐

