gpt4 book ai didi

c# - 将 guiText 隐藏在游戏对象后面

转载 作者:行者123 更新时间:2023-11-30 12:30:22 27 4
gpt4 key购买 nike

我的应用程序顶部有这个 HUD,它显示分数(左上角)、一个关于按钮(右上角)和中间的时间轴。随着时间的流逝,时间线“滚动”。

我想在时间轴上画一些数字来显示它所代表的年份。我目前正在使用 GuiText 来做这件事。不幸的是,我注意到,虽然时间轴栏位于场景中左上角的对象后面。 GUIText 保留在该对象上。

GUIText 是否总是绘制在其他所有内容之上,还是有办法将其隐藏在游戏对象后面?

更新:

经过一些测试/研究后,我得出的结论是,可能只有一种方法可以让 GUIText 不出现在某些对象的前面。

如果有人希望他们的文本(或任何类型的 GUI 内容)出现在某些对象后面,则必须至少使用一个额外的相机。

第二个摄像头应设置为“仅深度”,并且深度值低于主摄像头。这样,主摄像头绘制的所有内容都将位于第二个摄像头绘制的所有内容之上。

使用剔除 mask 并设置您希望在不同图层中显示/隐藏的对象。

最佳答案

您应该能够使用着色器执行此操作。

只需将对象的深度值从顶点着色器传递到 gui 的像素着色器。使用此值确定像素的 alpha 值。

使用您自己的游戏引擎并可以访问代码时,有多种方法可以做到这一点,但 Unity 会在这里对您进行一些限制。我不确定 Unity 是否允许您将像素着色器应用于 GUI。如果没有,请考虑为 gui 的这个特定部分使用广告牌并做类似的事情。

关于c# - 将 guiText 隐藏在游戏对象后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16189147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com