Files
TuanTuan-Engine/Assets/ThirdParty/YooAsset/2.3.17/UniTask Sample/README.md
2025-11-03 00:24:36 +08:00

1.8 KiB

UniTask 扩展

代码示例

using System;
using UnityEngine;
using YooAsset;
using Cysharp.Threading.Tasks;

public class TestTask : MonoBehaviour
{
    private async void Start()
    {
        var assetHandle = YooAssets.LoadAssetAsync<GameObject>("UIHome");
        await assetHandle.ToUniTask();
        Debug.Log($"{assetHandle.Status}");
    }
}

使用教程A

  1. 下载 UniTask 源码并导入到工程内。

  2. 修改UniTask源码

    UniTask/Runtime/_InternalVisibleTo.cs

    using System.Runtime.CompilerServices;
    
    [assembly: InternalsVisibleTo("UniTask.Linq")]
    [assembly: InternalsVisibleTo("UniTask.Addressables")]
    [assembly: InternalsVisibleTo("UniTask.DOTween")]
    [assembly: InternalsVisibleTo("UniTask.TextMeshPro")]
    [assembly: InternalsVisibleTo("UniTask.YooAsset")] //增加此行代码
    
  3. 拷贝YOO提供的扩展脚本到工程内。

    YooAssets/Samples/UniTask Sample/UniTask目录

  4. 添加引擎里的宏定义(在宏定义未生效的情况下)

    Project Settings --> Player --> Scripting Define Symbols

    UNITASK_YOOASSET_SUPPORT
    
  5. 重启Unity引擎

    重新打开工程后用上面的代码示例验证,看下是否有编译错误!

使用教程B

  1. 通过Package导入UniTask插件

  2. 拷贝YOO提供的扩展脚本到工程内。

    YooAssets/Samples/UniTask Sample/UniTask目录

    YooAssets/Samples/UniTask Sample/UniTaskRef目录

  3. 添加引擎里的宏定义(在宏定义未生效的情况下)

    Project Settings --> Player --> Scripting Define Symbols

    UNITASK_YOOASSET_SUPPORT
    
  4. 重启Unity引擎

    重新打开工程后用上面的代码示例验证,看下是否有编译错误!

注意事项

  • 注意检测程序集引用是否丢失

image