Pig*_*001 1 ienumerator function onclick buttonclick unity-game-engine
我尝试IEnumerator通过单击按钮调用函数,这样我就可以返回一些内容,但我无法从检查器的On Click()下拉菜单中选择该函数。
我尝试IEnumerator从另一个函数调用 并将该函数分配给按钮,但不起作用!
显然我不能yield return在void函数中执行此操作。
那么有人可以好心地教我该怎么做吗?
非常感激!
将函数与检查器中的统一事件挂钩有一定的规则。
1)该功能必须能够public从检查器中选择它。
2)返回类型必须是void,因此您将无法选择具有任何返回类型的函数,并且由于您的IEnumerator函数返回IEnumerator,因此您将无法从检查器中选择它。
3)函数参数必须与事件参数匹配,除非UnityEvent不带任何参数,如Button.onClick事件(感谢@derHugo纠正),例如按钮onClick事件不带任何参数,因此要选择一个函数从检查员看来,该功能必须看起来像
public void ChoosableTemplateForOnClickButton() { }
Run Code Online (Sandbox Code Playgroud)
但是您想从检查器调用 IEnumerator,因此您可以将其包装在 void 函数中:
假设你的 IEnumerator 函数看起来像
public IEnumerator MyRoutine()
{
yield and enjoy...
}
Run Code Online (Sandbox Code Playgroud)
将其包装在 void 函数中:
public void RoutineWrap()
{
StartCoroutine(MyRoutine());
}
Run Code Online (Sandbox Code Playgroud)
现在您可以RoutineWrap从检查员那里进行选择。