【问题标题】:TextMeshPro Text Object is not visible in unity gameViewTextMeshPro 文本对象在统一游戏视图中不可见
【发布时间】:2018-10-25 22:29:58
【问题描述】:

创建了一个脚本,用于在作为画布的子对象的游戏对象中添加 textMeshPro 文本。但是文本在 gameView 播放模式中不可见,但在场景模式下可见。文字尺寸变大,位置为Oth点。

以下是制作 textmesh 对象的代码:

public GameObject g;

// Use this for initialization
void Start () {
    TextMeshPro mText = g.AddComponent<TextMeshPro>();

    mText.autoSizeTextContainer = true;

    mText.text = "Hello there";

    // Set various font settings.
    mText.fontSize = 748;

    mText.alignment = TextAlignmentOptions.Center;


}

我怎样才能让它对相机可见?为什么它不渲染?

【问题讨论】:

  • 你能在场景视图中验证相机实际上是在看textmesh的方向吗?
  • 感谢您的反馈。旋转相机后,我看到了物体。如果我将此 textMesh pro 对象添加到画布上,所有其他文本都是可见的,但这个文本是可见的,我必须将它指向那个方向。那么,你能不能提一下让相机在零向量处看到这个物体的方法是什么?
  • 检查 Canvas 组件中的设置。是世界空间吗?屏幕空间?听起来您希望您的 UI 在屏幕空间中渲染,因此将 Canvas 的渲染模式设置为 Screen Space - Overlay
  • 感谢@Kwinten 的反馈。它已经处于 SS - 覆盖模式。我测试了其他模式。只有手动设置相机位置才能使这个文本对象可见。如果它可以像默认文本一样呈现在相同的位置,那就太好了。
  • 我知道这是一个很老的问题,但我最近遇到了类似的问题,我用TextMeshProUGUI解决了这个问题,而不是TextMeshPro。会是这样吗?

标签: c# unity3d


【解决方案1】:

您可以将 TextMeshPro 游戏对象放置在世界空间 (Create &gt; 3D Object &gt; TextMeshPro - Text) 或 UI 空间 (Create &gt; UI &gt; TextMeshPro - Text) 中。作为一个 3D 对象,它有一个 MeshRenderer,因此它是“在世界中”,而在 UI 版本中,它是“在屏幕中”使用 Canvas。

仅供参考,您的代码对我有用,但我必须在顶部使用 using TMPro; 指令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多