OnClick 事件中找不到公共函数

问题描述 投票:0回答:2

所以我有一个库存,并且项目有我正在扫描的 MataData。尽管当我尝试将 public void 连接到按钮上的 OnClick 选择时,它没有显示,为什么? 代码片段:

public void ScanForFlashlightMetaData(string type, string Flashlight)
    {
        foreach (Slot slot in inventory)
        if (slot.type == type && slot.metaData == Flashlight)
        {
            Debug.Log("Test");
        }
    }
c# unity-game-engine
2个回答
2
投票

分配给

ButtonClickEvent
的回调函数只能采用零个或一个参数(这就是当您删除它们时它会出现的原因)。

尝试在 here 寻找解决方法,或者考虑创建一个自定义

Button
类,该类使用支持最多四个参数的通用
UnityEvent<T0, T1, ...>


0
投票

如果方法中有 0 或 1 个参数,答案是首先将 C# 脚本附加到游戏对象,然后将该游戏对象拖动到按钮的 OnClick() 事件下(选择“仅运行时”后),它将在此处注册所有可用的公共方法,如下所示: https://discussions.unity.com/t/function-not-appearing-in-onclick-editor/170565

如果您有多个参数(根据您的问题),那么 Gus Lindell 的答案很棒!我提供 0 或 1 个参数选项,因为搜索结果就是出现的!

© www.soinside.com 2019 - 2024. All rights reserved.