版本:Unity 6 (6000.0)
语言:English
后期绑定
使用 GetSprites 在运行时检索精灵内容

使用 SpriteAtlasManager.atlasRequested 加载 Sprite Atlas

atlasRequested 是一个回调函数,用于告知您何时请求了构建中未包含的精灵二维图形对象。如果您习惯于使用 3D,则精灵本质上只是标准纹理,但有一些特殊的技术可以组合和管理精灵纹理,以便在开发过程中提高效率和便利性。 更多信息
参见 术语表
。您需要使用后期绑定手动加载精灵图集一个实用程序,将多个精灵纹理紧密地打包到一个称为图集的单个纹理中。 更多信息
参见 术语表
,并将精灵发送到 Unity 编辑器。

以下示例演示了如何设置回调函数以使用后期绑定从 AssetBundle 加载精灵图集。请注意,此脚本用于将精灵图集加载并绑定到构建或项目中已存在的精灵。您可以通过在运行时使用 GetSprites 检索精灵图集的内容来创建项目中不存在的精灵。

void OnEnable()
{
    SpriteAtlasManager.atlasRequested += RequestAtlas;
}
void OnDisable()
{
    SpriteAtlasManager.atlasRequested -= RequestAtlas;
}
void RequestAtlas(string tag, System.Action callback)
{
    if (spriteAtlas == null)
    {
        StartCoroutine(LoadFromStreammingAsset(callback));
    }
    else
    {
        callback(spriteAtlas);
    }
}

IEnumerator LoadFromStreammingAsset(System.Action callback)
{
    string path = Application.streamingAssetsPath + "/" + bundleName;
    print(path);
    AssetBundleCreateRequest bundleLoadRequest = AssetBundle.LoadFromFileAsync(Application.streamingAssetsPath + "/" + bundleName);
    yield return bundleLoadRequest;
    bundle = bundleLoadRequest.assetBundle;
    if (bundle == null)
    {
        Debug.Log("Failed to load AssetBundle!");
        yield break;
    }
    SpriteAtlas spriteAtlas = bundle.LoadAsset(bundleName);
    callback(spriteAtlas);
}
后期绑定
使用 GetSprites 在运行时检索精灵内容