我知道有两种方法可以做到。但它们都不适合我。
我尝试的第一种方法是创建一个gameObject,然后将一个立方体(形状)和一个带有Text的画布放入其中。我将形状,画布(世界空间)和文本的位置设置为(0,0,0),以便它们保持在一起。但是,只有立方体出现了。禁用多维数据集仍然无法显示文本。
所以我删除它并将Text Mesh添加到形状中,这要求我删除网格过滤器。而现在我所能看到的只是一个空洞。我有任何设置错误吗?
答案 0 :(得分:2)
我相信你在这里误解了一些事情,让我试着为你清理它们:
Canvas应该(几乎)始终是顶级对象,这意味着它不会附加到任何父级。而不是那样,画布作为其他对象的父级,这意味着其他对象是画布的子级。
此外,拥有多个画布对象可能会导致问题,请查看面板和布局组。
Text(或UI-Text)是画布内的一个对象,用于在画布空间上显示文本。另一方面,文本 mesh 是在3D空间中渲染到您的世界中的对象,这意味着它(并且可能不应该)附加到Canvas对象。
答案 1 :(得分:2)
您可以使用UI Button
游戏对象和3D多维数据集执行此操作。步骤如下:
在空场景中,创建一个3D立方体。
之后,创建一个UI Button
对象。
现在您已经拥有了按钮和Canvas,请将Canvas拖动到多维数据集的子级,如下所示:
现在您必须将Canvas设置为World Space
渲染模式,删除Canvas Scaler
组件,然后设置Width = Height = 1
和所有Pos = 0
。
最后一步,设置按钮:设置Width = Height = 100
,所有Scale = 0.01
和Pos Z = -0.501
。
现在,无论多维数据集的位置或旋转位置如何,您都拥有一个功能完善的按钮,可以保持与立方体的正面相连。
您当然可以添加任意数量的按钮,并将它们放置在多维数据集的不同面上(甚至可以将多个按钮定位到单个面等)。