You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LibGDX中查询当前正在加载的资源名称?

如何在LibGDX中查询当前正在加载的资源名称?

嘿,我来帮你搞定这个问题!你现在用AssetManager从assets.txt批量加载纹理资源,想要在render()方法里实时知道当前到底在加载哪一个资源,对吧?

默认情况下LibGDX的AssetManager并没有直接提供“获取当前加载资源名称”的方法,但我们可以通过给它加一个加载监听器轻松实现这个功能——监听器会在每个资源开始加载前触发回调,我们只要在这个回调里记录当前资源的名字就行。

具体操作步骤:

  1. 先在你的类里定义一个变量,专门用来存储当前正在加载的资源名称:
private String currentLoadingAsset; // 用来记录当前加载的资源路径
  1. 给AssetManager设置一个AssetLoaderListener,在资源开始加载前把名字存到上面的变量里。记得要在加载资源之前设置监听器,不然第一个资源的加载可能会错过回调哦!
ASSETS = new AssetManager();

// 设置加载监听器
ASSETS.setLoaderListener(new AssetLoaderListener() {
    @Override
    public void beforeLoad(AssetDescriptor asset, FileHandle file) {
        // 这里的asset.name就是你调用load()时传入的路径字符串(也就是assets.txt里的每一行内容)
        currentLoadingAsset = asset.name;
    }

    @Override
    public void afterLoad(AssetDescriptor asset, FileHandle file) {
        // 可选操作:加载完成后可以清空变量,或者保留最后一个加载的资源名
        // currentLoadingAsset = null;
    }
});

// 接下来是你原来的批量加载代码
FileHandle assetHandle = Gdx.files.internal("assets.txt");
String text = assetHandle.readString();
String[] lines = text.split("\n");
for (String line : lines) {
    ASSETS.load(line, Texture.class);
}
  1. 现在在render()方法里,你就可以直接用currentLoadingAsset获取当前加载的资源名啦!结合update()方法判断加载状态:
@Override
public void render() {
    // 先更新AssetManager的加载进度
    if (!ASSETS.update()) {
        // 还在加载中,输出当前资源名
        if (currentLoadingAsset != null) {
            System.out.println("当前正在加载:" + currentLoadingAsset);
        }
        // 顺便可以输出加载进度,方便调试
        float loadProgress = ASSETS.getProgress();
        System.out.println("加载进度:" + String.format("%.1f", loadProgress * 100) + "%");
    } else {
        // 所有资源加载完成
        System.out.println("所有资源都加载好啦!");
    }
}

小提醒:

  • beforeLoad回调里的AssetDescriptor还能提供更多信息,比如asset.type可以知道当前加载的是纹理还是其他类型的资源,file参数能拿到资源的文件句柄,按需使用就行。
  • 因为AssetManager的update()是在主线程(render线程)调用的,监听器的回调也在同一个线程,所以currentLoadingAsset不会有线程安全问题,放心用就好!

备注:内容来源于stack exchange,提问作者Alexander Cowgill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:18:09