允许在 3D 世界上将图形用户界面元素渲染到零件的表面,同时允许基本用户互动。 表面Guis必须是PlayerGui的后代,才能知道哪个玩家与它交互。
为了性能提升,暂时将静电界面缓存
在下列事件之一发生之前,GUI的外观会被缓存:
- 一个子女已添加到 Gui。
- 一个子女从 Gui 中移除。
- Gui 子代的属性。
- GUI 的属性变更。
如果发生任何一个此事件,图形用户界面的外观将在它渲染的下一个框架中重新计算。
概要
属性
确定面层图会否始终在其他 3D 对象之上渲染。
当 LightInfluence 为 0 时,确定图形GUI界面的灯光将如何缩放。
‘虚拟屏幕’的大小,以“虚拟像素”表示,使 SurfaceGuis 像素与屏幕兼容。
设置为 true 时,在 SurfaceGui 的画面边缘之外的 GuiObjects 不会被绘制。
控制 SurfaceGui 是否受到游戏世界的照明影响。
控制界面可以在哪里显示,在停止渲染之前。
确定使用世界空间用户界面的屏幕空间像素数。
确定 SurfaceGui 是否以固定大小或以其大小在 studs 上缩放。
将剩余的点击距离设置为开始在表面 gui 上作用,而不是持有的工具。
将 SurfaceGui 关联到它所包含的表面的正常值。
切换是否显示此 LayerCollector 。
决定每次玩家角色重生时,LayerCollector 是否重置(删除自己并重新克隆到玩家的 Class.PlayerGui )。
控制 GuiObject.ZIndex 在所有这 LayerCollector 的子代上的行为。
描述 UI 元素的实际屏幕位置,以像素计。
描述 UI 元素的实际屏幕旋转度。
描述 UI 元素的实际屏幕大小,以像素计。
设置为“真”时,本地化将被应用到此 GuiBase2d 和它的子代。
一个引用 LocalizationTable 用于应用自动本地化到此 GuiBase2d 和它的子代。
在下向方向中自定义游戏手柄选择行为。
在左向向选择游戏手柄的行为进行自定义。
自定义游戏手柄选择行为在正确的方向。
在上向方向中自定义游戏手柄选择行为。
允许自定义游戏手柄选择移动。
活动
继承自GuiBase2d的活动- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
在游戏手柄选择移动到,离开或更改连接的 GuiBase2d 或任何子对象。
属性
AlwaysOnTop
决定是否在 3D 内容的顶部渲染表面图形用户界面,或被其覆盖。
设置为“关闭”时,SurfaceGui会像其他3D内容一样渲染,并且会被其他3D对象覆盖。
设置为“真”,它总是会在 3D 内容上渲染,且外观发生 значитель变化:
- 颜色与它们在 ScreenGui 中的样子匹配。
- 文本可能会在高 DPI 设备上更锋利。
- SurfaceGui.LightInfluence 被处理为 0 。
- SurfaceGui.Brightness 没有效果。
Brightness
亮度 决定图形GUI界面发射的光的比例。默认情况下,此属性为 1 ,可以设置为 0 到 1000 之间的任何数字。
通过修改此属性,可以更好地将 GUI 的亮度匹配到其环境。 例实例,如果在 Times Square 找到的视频广告牌照亮,可以使其在明亮的一天更加明显。
这个属性在以下场景中不会产生任何效果,其中 GUI 不会发出光:
- 当 AlwaysOnTop 是真的时候,每个像素的颜色都是屏幕上显示的颜色。
- 当 LightInfluence 为 1 时,所有从 GUI 发出的光都会反射到环境中,而不是发出。
ClipsDescendants
设置为 true 时,在 SurfaceGui 的画面边缘之外的 GuiObjects 不会被绘制。
即使这个属性是错误的,面板的 SurfaceGui 对象将不会渲染。
MaxDistance
控制界面可以显示多远。 值 0 表示没有上限,它将以无限远的距离渲染。
对于有许多 SurfaceGuis 的体验,建议将其设置为每个 SurfaceGui 的适当值。 Studio 中插入 SurfaceGui 的默认值是 1000,这应该对大多数用例都很好。
对于户外的 UI,您应该将最大距离设置得足够远,以便屏幕上弹出时 UI 的大小在 10 像素以上。这使它在弹出或退出时更不易注意到。
您可以通过将相似的标签添加到 SurfaceGui 下面或将零件颜色变更为与 UI 背景颜色匹配来减少弹出效果。
对于室内空间,最大距离应该稍微大于房间的大小,以便玩家在不同的房间时不会渲染。
PixelsPerStud
像素每秒 确定每个世界空间的像素密度,用于渲染 SurfaceGui 的内容。
SizingMode
设置为 Enum.SurfaceGuiSizingMode.FixedSize 时,SurfaceGui 会使用 SurfaceGui.CanvasSize 设置固定大小。
设置为 Enum.SurfaceGuiSizingMode.PixelsPerStud 时,SurfaceGui 会按照 SurfaceGui.PixelsPerStud 和 SurfaceGui 的尺寸在 studs 中渲染。