I've been using PreloadAsync()
to load all of my Gui elements, since most of them are made of a lot of images, but sometimes it looks like assets still need time to load. I wrote my table like this:
local AssetTable = { "rbxassetid://"..-- This is the way I've been Preloading assets, using IDs instead of instances --+70 IDs that I won't copy }
I saw some people saying that PreloadAsync()
only works when using Instances
and not IDs(?), but I've seen people using IDs and even the API Reference uses as an example strings
of assets, not Instances
on the game.
On my callback function I made a simple counter that helps printing how many assets where loaded and how many failed (if any):
function callback(contentId, status) if status == Enum.AssetFetchStatus.Success then LoadedAssets = LoadedAssets + 1 end if status == Enum.AssetFetchStatus.Failure then FailedAssets = FailedAssets + 1 table.insert(WebPageFailedTable, WebPageFailedAssets, contentId) --Simple table I made in order for the failed assets to appear as a list when printing them in a "In Pairs" loop end end --Later in the script warn(tonumber(LoadedAssets).." assets were correctly loaded!") if FailedAssets > 0 then warn(tonumber(FailedAssets).." assets were unable to load!:") for i, Asset in pairs(FailedTable) do warn(tonumber(i)..": "..tostring(Asset)) end else warn("All assets were loaded successfully!") end
Output:
72 assets were correctly loaded!
All assets were loaded successfully!
Yet I when my loading screen goes off, sometimes assets I included take time to load. Keep in mind my PC is incredibly old, but I still have doubts if PreloadAsync()
works with IDs, Instances
, or both. So please if someone can put my doubts to rest I would really appreciate it.