Files
YooAssetScene/Assets/YooAsset/Samples~/UniTask Sample/README.md
T
2025-07-24 14:56:58 +08:00

1.3 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}");
    }
}

使用教程

  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/Runtime/External/YooAsset目录

  4. 添加引擎里的宏定义

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

    UNITASK_YOOASSET_SUPPORT
    
  5. 重启Unity引擎

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

注意事项

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

image