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

Trilib运行时导入模型后无法选中对象的问题排查

Trilib导入3D模型后无法选中操作的问题解决

问题核心原因

AssetLoader.LoadModelFromFile是异步加载方法,你同步调用时模型还在加载流程中,返回的AssetLoaderContext尚未完成初始化,因此会为空,导致无法获取模型GameObject。模型能显示是因为Trilib内部先渲染了临时资源,但加载上下文的Models集合还未填充完成。

解决方案

改用Trilib提供的异步加载API,在加载完成的回调中处理模型对象:

修改后的代码示例

public void ImportModel()
{
    var paths = StandaloneFileBrowser.OpenFilePanel("Select 3d model", "", "", false);
    if(paths != null && paths.Length > 0) 
    {
        string filePath = paths[0];
        // 使用异步加载并传入完成回调
        AssetLoader.LoadModelFromFileAsync(filePath, OnModelLoadCompleted);
    }
}

private void OnModelLoadCompleted(AssetLoaderContext assetLoaderContext)
{
    if (assetLoaderContext == null || assetLoaderContext.Models.Count == 0)
    {
        Debug.Log("加载上下文为空或无模型对象");
        return;
    }
    // 获取第一个模型GameObject
    loadedModel = assetLoaderContext.Models.Keys.FirstOrDefault();
    if(loadedModel != null)
    {
        AssignTag(loadedModel);
        AttachMeshCollider(loadedModel);
        Debug.Log("模型处理完成:" + loadedModel.name);
    }
    else
    {
        Debug.Log("无法找到加载模型的根GameObject");
    }
}

补充说明

  • 若一定要用同步加载,需检查Trilib设置面板,确认是否开启同步加载模式(部分版本默认关闭),但异步加载是官方推荐方式,可避免阻塞主线程。
  • 模型无法选中操作的直接原因是缺少碰撞器和可编辑标签,而这两个操作依赖正确获取模型GameObject,因此解决加载上下文的初始化问题是核心。

内容的提问来源于stack exchange,提问作者zakilman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:23:12