在 Unity 中创建监视器

Creating a monitor in Unity

我有一个用搅拌机制作的潜艇预制件。在这艘潜艇中有一个“高度”屏幕,它基本上是一个我缩放并涂成黑色的立方体。 我可以通过 sub.transform.position.y 轻松获得潜艇的高度。 现在我想在屏幕上放置一个“文本”,上面写着我得到的高度。

我的问题是:最好的方法是什么?

在理想的世界里,我会有这样的功能 TextObject putTextOnTop(GameObject the_panel) 这会生成一个 textObject,然后我会用我的值更新每一帧。

谢谢

对此有多种解决方案。

unity 中有一个旧的 3D 文本组件。这可以做你想做的。问题在于,您只有有限的样式选项。

更好的方法是使用 WorldSpaceCanvas。 如果您使用此选项,您将拥有所有 TextMeshPro 样式选项。

这是一个视频: https://www.youtube.com/watch?v=GuWEXBeHEy8

视频不是很好,但我找不到更好的。

如果您还有任何问题,请随时提问

您可以将 Text GameObject 作为屏幕 (Cube GameObject) 的子对象,有两种方法:

  1. 直接在层次结构

    中设置
  2. 创建预制件 TextObject 并将其保存在资源中,路径为:Resources/UI/TextObject。然后在代码中,实例化并使用以下代码将其添加为 Cube 的子项:

    GameObject textObject = Instantiate(Resources.Load("/UI/TextObject") as GameObject);
    
    textObject.transform.SetParent(cube.transform, false);
    

然后,在更新函数中添加以下代码:

void Update()
{
    TextObject.GetComponent<Text>().text =  sub.transform.position.y.ToString();
}

希望对您有所帮助!