unity 主线程调用_Unity主线程和子线程跳转调用(2)

这篇博客介绍了如何在Unity编辑器插件项目中实现主线程与子线程的调用。通过创建Loom类,利用EditorApplication.update事件订阅更新方法,确保子线程中的耗时操作完成后能在Unity主线程执行特定函数,以保证逻辑的正确顺序执行。文章详细展示了Loom类的代码实现,包括RunAsync、QueueOnMainThread和Sleep等方法,以及如何停止任务。
摘要由CSDN通过智能技术生成

在上一篇介绍了多线程和Unity交互方式,但是由于我的项目是一个unity编辑器插件项目,很显然上一篇的代码需要加以修改,在编辑器下实现Loom.

1,Editor下的没有Update这个生命周期函数,但是Ediitor提供了EditorApplication.update这个事件,自己用这个事件订阅update方法即可

2,Editor下的没有Awake OnDestory这些生命周期函数,需要自己编写方法让外部去创建、销毁Loom

3,  我的项目需要保证子线程逻辑不假死的同时又要保证同步,如下面这段伪代码,执行顺序为:DownFile1->UnityFunction1->DownFile2->UnityFunction2

Function

{

//异步在多线程下运行

Loom.RunAsync(() =>

{

//耗时函数

DownFile1();

//回到unity线程继续运行

Loom.QueueOnMainThread(()=>

{

//这个函数是unity函数

UnityFunction1();

}

//耗时函数

DownFile2();

//回到unity线程继续运行

Loom.QueueOnMainThread(()=>

{

//这个函数是unity函数

UnityFunction2();

}

}

}

修改后的代码如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值