【发布时间】:2019-12-20 07:14:27
【问题描述】:
我遇到了需要运行的协程的问题。它不断吐出一个错误,说它无法将 WaitUntil 转换为字符串,当我将 WaitUntil 添加到返回类型时,它又吐出另一个说它无法返回的错误。我已经尝试研究了几个小时,但无济于事。以下是代码片段:
public string OpenSaveDialog(string Title, string OpenLocation, string[] AllowedExtentions)
{
OpenBtn.GetComponentInChildren<TMPro.TMP_Text>().text = "Save";
TitleText.text = Title;
AllowFileNameTyping = true;
MultiSelect = false;
LoadIntoExplorer(PathInput, AllowedExtentions);
return StartCoroutine(WaitForFinish()); // Error here: Cannot implicitly convert type 'UnityEngine.Coroutine' to 'string'
}
IEnumerator<string> WaitForFinish()
{
yield return new WaitUntil(() => Done == true); // Error here: Cannot implicitly convert type 'UnityEngine.WaitUntil' to 'string'
yield return FilePathsSelected[0];
}
【问题讨论】:
-
因为我需要它最终返回一个字符串,但我有一种感觉不是它的工作原理......在那种情况下,我如何让它返回一个字符串而不改变一切进入协程?
-
是的,但是有没有办法从一个不是协程的协程中返回一个值,这样我就可以在我的函数中返回它?
标签: c# unity3d return coroutine