【发布时间】:2013-04-24 10:05:22
【问题描述】:
我的应用顶部有这个HUD,它显示了分数(左上角)、一个关于按钮(右上角)和中间的时间线。随着时间的推移,时间线“滚动”。
我想在时间线上画一些数字来显示它所代表的年份。我目前正在使用 GuiText 来做这件事。不幸的是,我注意到了这一点,而时间线栏位于场景中左上角的对象后面。 GUIText 保留在该对象上。
GUIText 是否总是绘制在其他所有内容之上,还是有办法将其隐藏在游戏对象后面?
更新:
经过一些测试/研究后,我得出的结论是,可能只有一种方法可以让 GUIText 不出现在某些对象的前面。
如果一个人希望他们的文本(或任何类型的 GUI 内容)位于某些对象的后面,则必须至少使用一个额外的摄像头。
第二个摄像头应该设置为“仅深度”,并且深度值低于主摄像头。这样,主摄像头绘制的所有内容都将位于第二个摄像头绘制的所有内容之上。
使用剔除遮罩并设置您希望在不同层中显示/隐藏的对象。
【问题讨论】:
-
您将无法在其他游戏对象下渲染 guiText,至少在不使用其他相机的情况下是这样。如果您希望 GUI 成为场景的 3d 元素,则必须考虑替代 GUI 解决方案,例如 NGUI。
-
我认为问题在于您绘制物品的顺序。时间轴上的文本是在按钮上绘制的?这是因为文本是在按钮之后呈现的。尝试将该代码放在按钮之前。
-
我认为问题与作为 GUI 的文本和按钮/图标是游戏对象(立方体)有关。我相信 GUI 的东西总是最后绘制的。这是正确的吗?
-
除 GUIText 之外还有什么方法可以绘制文本?