包含此页的版本:
不含此页的版本:
atlasRequested是一个回调,它告诉你当sprite2D 图形对象。如果你习惯于在3D中工作,精灵本质上只是标准纹理,但有一些特殊的技术可以组合和管理精灵纹理,以提高开发过程中的效率和便利性。更多信息
请参阅术语表,该版本未包含在生成中。您需要手动加载精灵图集(Sprite Atlas) 一种实用程序,将多个精灵纹理紧紧地打包在称为图集的单个纹理中。更多信息
请参阅术语表,并将精灵发送到 Unity 编辑器。
以下示例演示了如何设置回调,以使用延迟绑定从AssetBundle加载SpriteAtlas。请注意,此脚本用于加载 Sprite Atlas 并将其绑定到构建或项目中已存在的 Sprite。你可以通过以下方式从Sprite Atlas创建项目中不存在的Sprite在运行时检索 Sprite Atlas 的内容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);
}