JS异步和UniTask(Unity)

2 篇文章 0 订阅

unity C#异步和JS异步

  • JS异步函数:async/await,在awaii处得到Promise(期约)的“完成”或“未完成”状态前暂停了异步函数,得到后恢复执行。
async a(){
	let p = new Promise((resolve,reject) => {
		setTimeout(resolve,1000,3);	
	})
	console.log(await p);//3
}

相当于Unity的yield return new WaitForSeconds(1);

  • UniTask
    提供了类似的于JS的操作异步函数的一系列API,所有对异步函数的暂停和恢复执行,都可以用await UniTask…的形式代替(比如等待网页的报文、等待资源加载完成、或直接等待若干秒)。
using Cysharp.Threading.Tasks;
public class Demo{
	async UniTask<string> demoAsync(){
		var t = await Resources.LoasAsync<TextAsset>("foo");
		await UniTask.Delay(TimeSpan.FromSeconds(10),
			ignoreTimeScale:false);
		return t?.text ?? throw InvalidOperationException("None");
	}
}

C#新特性,运算符?.指当前者不为空时取得.之后的属性。??判空。但这两个运算符不要用在对"物体身上某组件是否为空“的判断上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值