请写出unity版的多线程示例
时间: 2023-09-28 14:03:23 浏览: 114
下面这个是一个简单的Unity多线程示例,它会在后台线程中计算一些数据,并将结果返回到主线程中显示出来:
```csharp
using System.Threading;
using UnityEngine;
public class MultiThreadExample : MonoBehaviour
{
private int _result;
private void Start()
{
// 创建一个新的线程,用于计算数据
Thread thread = new Thread(CalculateData);
thread.Start();
}
private void CalculateData()
{
// 模拟一个耗时的计算过程
Thread.Sleep(5000);
// 计算完成后将结果保存到成员变量中
_result = 42;
// 将结果返回到主线程
UnityMainThreadDispatcher.Instance().Enqueue(() => {
Debug.Log("Result: " + _result);
});
}
}
```
这个示例使用了UnityMainThreadDispatcher类,它可以将任务加入到主线程的队列中,从而在主线程中执行。这样做的好处是,我们可以在后台线程中执行耗时的计算任务,而不会阻塞主线程,从而保证游戏的流畅性。
阅读全文