我与UnityEvents工作作为说明这里。那里写着
在 Inspector 中配置 UnityEvent 时,支持两种类型的函数调用:
静止的。静态调用是预配置的调用,具有在 UI 中设置的预配置值。这意味着当回调被调用时,目标函数将使用已输入 UI 的参数调用。
动态的。使用从代码发送的参数调用动态调用,并且这绑定到正在调用的 UnityEvent 类型。UI 过滤回调,只显示对 UnityEvent 有效的动态调用。
所以我得到一个带有参数的 UnityEvent
public class UnityEventFloat : UnityEvent<float>
{
}
public UnityEventFloat OnUpdateEvent;
Run Code Online (Sandbox Code Playgroud)
这在检查器中显示为
如您所见,我setWaitTime向 UnityEvent添加了一个回调函数。函数有这个形状 public void setWaitTime(float t)
之后 UnityEvent 将在代码中被调用为
OnUpdateEvent.Invoke(aValue);
Run Code Online (Sandbox Code Playgroud)
尝试所有这些,它不能很好地工作,因为调用时函数使用作为参数 0(如在检查器中)我想要的是它使用参数调用函数aValue(这是代码中的内部变量)
我怎样才能做到这一点?我想我不太理解文档中的引用。我的情况就像“静态”一样,我要求它像“动态”一样工作
编辑2:
我必须解决这个问题,所以我要把它写在一个答案中
编辑:(旧)我尝试了建议的答案,我得到了这个
我不知道这如何解决问题(注意现在参数是脚本。但这是在同一个脚本中(SliderGestureControl))
我终于要让它工作了。显然我在从下拉列表中选择函数时犯了一个错误。我选择了“静态”标签下的功能,但我应该选择了相同的功能,但位于列表顶部的“动态”标签下(我没有看到)。
因此,该函数setWaitTime在检查器中没有任何参数(因此它动态地使用 UnityEvent.
| 归档时间: |
|
| 查看次数: |
4102 次 |
| 最近记录: |