You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.7 KiB
50 lines
1.7 KiB
using UnityEngine; |
|
using YooAsset; |
|
|
|
namespace ET |
|
{ |
|
public static class YooAssetOperationExtensions |
|
{ |
|
public static ETTask<OperationHandleBase> ToETTask(this OperationHandleBase handle) |
|
{ |
|
var task = ETTask<OperationHandleBase>.Create(); |
|
switch (handle) |
|
{ |
|
case AssetOperationHandle assetOperationHandle: |
|
assetOperationHandle.Completed += op => { task.SetResult(op); }; |
|
break; |
|
case SceneOperationHandle sceneOperationHandle: |
|
sceneOperationHandle.Completed += op => { task.SetResult(op); }; |
|
break; |
|
case SubAssetsOperationHandle subAssetsOperationHandle: |
|
subAssetsOperationHandle.Completed += op => { task.SetResult(op); }; |
|
break; |
|
} |
|
|
|
return task; |
|
} |
|
|
|
public static ETTask<AsyncOperationBase> ToETTask(this AsyncOperationBase handle) |
|
{ |
|
var task = ETTask<AsyncOperationBase>.Create(); |
|
handle.Completed += op => { task.SetResult(op); }; |
|
return task; |
|
} |
|
|
|
public static void Release(this OperationHandleBase handle) |
|
{ |
|
switch (handle) |
|
{ |
|
case AssetOperationHandle assetOperationHandle: |
|
assetOperationHandle.Release(); |
|
break; |
|
case SceneOperationHandle sceneOperationHandle: |
|
Debug.LogWarning("Can't release SceneOperationHandle"); |
|
break; |
|
case SubAssetsOperationHandle subAssetsOperationHandle: |
|
subAssetsOperationHandle.Release(); |
|
break; |
|
} |
|
} |
|
} |
|
} |