在Unity中不使用异步和协程,等一个方法的拿到了返回值再进行下一行代码的运行
时间: 2023-06-26 10:08:59 浏览: 174
在Unity中,如果你不想使用异步和协程,可以使用C#中的同步方法来等待一个方法的返回值。具体的实现方式是在调用该方法时使用关键字 `await`,这将会阻塞当前线程直到该方法返回结果。示例代码如下:
```csharp
using UnityEngine;
using System.Threading.Tasks;
public class Example : MonoBehaviour
{
private async void Start()
{
int result = await LongRunningMethod();
Debug.Log(result);
}
private Task<int> LongRunningMethod()
{
return Task.Run(() =>
{
// 模拟一个耗时操作
System.Threading.Thread.Sleep(5000);
return 42;
});
}
}
```
在上面的示例代码中,我们通过异步方法 `LongRunningMethod` 模拟了一个耗时操作,并将其包装成了一个返回 `Task<int>` 类型的方法。在 `Start` 方法中,我们使用了关键字 `await` 来等待 `LongRunningMethod` 方法的返回结果,并将结果赋值给了 `result` 变量,最后将 `result` 的值输出到控制台。由于使用了 `await`,当调用 `LongRunningMethod` 方法时,程序将会阻塞当前线程直到该方法返回结果。
阅读全文