在 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) 的子对象,有两种方法:
直接在层次结构
中设置
创建预制件 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();
}
希望对您有所帮助!
我有一个用搅拌机制作的潜艇预制件。在这艘潜艇中有一个“高度”屏幕,它基本上是一个我缩放并涂成黑色的立方体。 我可以通过 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) 的子对象,有两种方法:
直接在层次结构
中设置创建预制件 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();
}
希望对您有所帮助!