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

向GameObject添加TextMeshPro组件后物体及Mesh Filter消失问题

TextMeshPro添加后GameObject消失的问题分析与修复

核心原因

TextMeshPro组件会自动生成并管理自身的Mesh Filter和Mesh Renderer,替换原有组件是正常行为,但GameObject消失通常由以下代码或配置问题导致:

  1. TextMeshPro类型误用
    你在代码中操作了rectTransform,但TextMeshPro是3D文本组件,不需要RectTransform;如果是UI场景,应该使用TextMeshProUGUI。强行给3D物体加TextMeshPro并修改RectTransform会破坏布局逻辑,导致物体不可见。

  2. 错误的旋转逻辑
    Update中的旋转代码会让文本瞬间同步相机的欧拉角,极易导致文本法线完全背离相机,触发背面剔除(默认开启),最终看不到物体:

    m_text.transform.Rotate(Camera.main.transform.eulerAngles - m_text.transform.eulerAngles);
    
  3. 资源加载失败
    如果Resources.Load的字体或材质路径错误,TextMeshPro因缺少渲染资源无法显示,视觉上等同于GameObject消失。


修复方案

  • 修正组件类型

    • 若做UI文本:删除现有TextMeshPro,添加TextMeshProUGUI组件,确保GameObject在Canvas下。
    • 若做3D文本:删除代码中操作RectTransform的行:
      // 移除该行
      m_text.rectTransform.sizeDelta = new Vector2(3f, 3f);
      
  • 优化旋转逻辑
    要让文本始终面向相机,用LookAt替代当前的Rotate逻辑更稳定:

    void Update()
    {
        m_text.transform.LookAt(Camera.main.transform);
        // 避免文本翻转,添加180度Y轴旋转
        m_text.transform.Rotate(0, 180, 0);
    }
    
  • 验证资源路径
    确认Resources/Fonts & Materials目录下存在LiberationSans SDF(TMP字体资产)和LiberationSans SDF - Drop Shadow(材质),路径大小写、文件夹名称必须完全匹配。

  • 检查渲染设置
    确保TextMeshPro的Mesh Renderer所在Layer被相机的Culling Mask包含,避免被相机忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:18:14