SurfaceGui 允许在 3D 世界中将 UI 对象渲染到零件表面,同时还允许基本用户互动发生。与 和 类似,用户界面对象,例如 和 会面向相同方向的表面,可以通过 属性进行编辑。

请注意,如 和 内的互动用户界面元素只会接收用户输入,如果它们属于 ,通常是通过将 放置在 内( 属性可用于将 3D 世界中的某个部分标记为目标,而 本身仍留在 中)。此外,零件的 CanQuery 属性必须为 true 才能接收输入,以便交互用户界面元素收到输入。
请参阅体验内的用户界面以获取有关使用SurfaceGui的指南。
缓存行为
为了帮助提高性能,SurfaceGui 的外观将被缓存,直到以下情况之一发生,然后其外观将在下一次渲染框中重新计算。
- 子孙被添加到或从 SurfaceGui 中删除。
- 一个 descendant 的 SurfaceGui 变化的属性。
- SurfaceGui 自身的属性发生了变化。
概要
属性
决定是否 SurfaceGui 将始终渲染在其他 3D 对象之上。
确定容器 SurfaceGui 的灯光在 LightInfluence 时被缩放的因子,当 0 时灯光被缩放。
在"虚拟像素"中"虚拟屏幕"的大小,使 SurfaceGuis 像素与 ScreenGuis 兼容。
是否绘制在 GuiObjects 画布边界之外的部分 SurfaceGui 画布。
控制 SurfaceGui 是否受环境照明影响多少。
控制 SurfaceGui 在停止渲染之前可以显示多远。
决定每个世界空间单元用于渲染 SurfaceGui 内容的像素密度。
决定 whether SurfaceGui 是否以固定的尺寸或缩放其尺寸来渲染。
设置左键单击开始在 SurfaceGui 上作用而不是在持有的 Tool 上的距离。
将此 SurfaceGui 层与同一面上的其他 SurfaceGuis 关联。
BasePart 在哪里应用 SurfaceGui , 覆盖默认父联盟。
Enum.NormalId 脸上应用 SurfaceGui .
切换这个 LayerCollector 的可见性。
决定是否重置 LayerCollector (删除自己并重新克隆到玩家角色的 PlayerGui )每次玩家角色重生。
控制 GuiObject.ZIndex 如何在这个 LayerCollector 的所有子孙上行为。
活动
继承自GuiBase2d的活动- SelectionChanged(amISelected : boolean,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
当游戏手柄选择移动到、离开或在连接的 或任何子手柄中更改时,发生火焰。
属性
AlwaysOnTop
该属性决定 whether SurfaceGui 是否总是会在其他 3D 对象上渲染。
当设置为 false (默认) 时,SurfaceGui 像其他 3D 内容一样渲染,被其他 3D 对象遮蔽。当设置为 true 时,SurfaceGui 总是在 3D 内容上渲染,外观变化显著:
- 颜色与它们在 ScreenGui 内出现的方式匹配。
- 文本可能在高 DPI 设备上显得更锋利。
- LightInfluence 被视为如果它是 0 。
- Brightness 没有效果。
Brightness
该属性决定了当 容器的灯光被缩放时的因子,当 > 时灯光被缩放。默认情况下,此属性为 1 ,可以设置为 0 和 1000 之间的任何数字。通过修改此属性,SurfaceGui 的显示亮度可以更好地匹配其环境。例实例,一个视频广告牌可以在黑暗房间内亮起,通过将 Brightness 提高到 10 来实现。
请注意, 在 Studio 无法访问,且当 或 是 时没有效果。
ClipsDescendants
当设置为 true (默认) 时,那些落在 GuiObjects 画布边界之外的 SurfaceGui 部分不会被绘制。
即使当这个属性是 false , GuiObjects 那些在画布外完全 **** 的东西也不会渲染。
MaxDistance
此属性控制在渲染停止之前,SurfaceGui 会显示多远离相机。值 0 表示没有限制,将无限远地渲染。默认值 1000 对大多数情况来说都很好。
对于那些在室外出现的 SurfaceGuis ,建议 MaxDistance 高度足够,以确保容器的用户界面在出现或消失时在屏幕上足够小,减少突然出现/消失的效果。
PixelsPerStud
该属性决定了每个世界空间像素用于渲染 SurfaceGui 内容的密度。更高的值会导致内部的各种 GuiObjects 变小,如果保持相同的尺寸。相反,较低的值会导致对象看起来更大。然而,如果 GuiObjects 通过使用 UIScale , GuiObject.Size , TextLabel.TextSize 或类似来进行比例缩放,该属性可以允许使用更高的定义。
选择一个值,取决于你希望玩家观看 SurfaceGui 的距离有多远很重要。还需要注意,大的像素密度可能会对性能产生负面影响,如果装饰的部件的面积足够大。
SizingMode
当设置为 Enum.SurfaceGuiSizingMode.PixelsPerStud (默认) 时,SurfaceGui 渲染以基于 PixelsPerStud 和表面尺寸的变量大小进行渲染。
当设置为 Enum.SurfaceGuiSizingMode.FixedSize 时,SurfaceGui 通过 CanvasSize 设置固定尺寸渲染。
ToolPunchThroughDistance
设置左键单击开始在 SurfaceGui 上作用而不是在持有的 Tool 上的距离。如果角色在 SurfaceGui 的距离内,Tool 将在点按时不会激活。