广告牌GUI是在3D空间中出现的GuiObjects的容器。广告牌GUI总是面向相镜头,可以通过距离或保持屏幕上的大小进行调整。BillboardGui.Size属性基于Class.的贵族定义。
其位置相对于BillboardGui.Adornee。如果没有 Adornee 设置,那么 BillboardGui 的父级将被用作 Adornee。对于BaseParts,父级将使用Position属性。对
广告牌GUI的Size属性与GuiObject.Size相似,但 Offset 部分工作相同,但 Scale 部分用作尺寸在 3D 空间中使用。
UDim2.fromScale(4, 5) 的尺寸是 4x5 格子,并且随着相镜头的距离而缩放 UI。UDim2.fromOffset(200, 100) 的尺寸总是在屏幕上 200x100,并且不会随着距离而改变尺寸。
在创建尺寸缩放广告牌时,请确保所有的UI对象在使用 Scale 缩放,并确保所有的文本都有 TextLabel.TextScaled 启用,以确保正确的缩放。
广告牌图库的绝对位置属性和所有其子都与其画布的左上角相对,因此总是是 0, 0 对于广告牌图库实例。
为性能优化静电图形用户界面进行缓存
在下列事件之一发生之前,GUI的外观会被缓存:
- 一个子女已添加到 Gui。
- 一个子女从 Gui 中移除。
- Gui 子代的属性。
- GUI 的属性变更。
如果发生任何一个此事件,图形用户界面的外观将在它渲染的下一个框架中重新计算。
概要
属性
控制子子会否接收输入事件。
设置广告牌图形对象或附件的相对位置。
决定 BillboardGui 是否会在 3D 内容前面或后面渲染。
当 LightInfluence 为 0 时,确定图形GUI界面的灯光将如何缩放。
设置为 true 时,会话外的 GuiObjects 部分不会被绘制。
Class.BillboardGui 从玩家的相镜头上的当前距离。
确定 Class.BillboardGui 的尺寸在哪里会增加。
距离将被圆化为此值的增量。
确定 Class.BillboardGui 的尺寸在所有尺寸下将停止缩放。
决定 BillboardGui 是否从其 Adornee 中的偏移,相对于 Camera 方向和单位是模型的 Camera - 对齐边方块的半尺寸。
决定 BillboardGui 的 Offset 从其 Adornee 与全球轴和单位的相对位置是否为半尺寸模型的轴对齐边方块的边框尺寸的一半。
控制广告牌图形是否受到环境中的照明影响。
设置广告牌可以从相机和仍然被绘制的最大距离。
用于隐藏特定玩家从 BillboardGui 的内容。
控制屏幕上的广告牌指示牌的大小。
一个 2D 偏移,用于作为锚点的关键。
确定 BillboardGui 的 Offset 从其 Adornee 与 Camera 方向和单位在 studs 的相对位置。
决定 BillboardGui 从其 Adornee 的相对位置,与全球轴和单位在 studs 的相对位置。
切换是否显示此 LayerCollector 。
决定每次玩家角色重生时,LayerCollector 是否重置(删除自己并重新克隆到玩家的 Class.PlayerGui )。
控制 GuiObject.ZIndex 在所有这 LayerCollector 的子代上的行为。
描述 UI 元素的实际屏幕位置,以像素计。
描述 UI 元素的实际屏幕旋转度。
描述 UI 元素的实际屏幕大小,以像素计。
设置为“真”时,本地化将被应用到此 GuiBase2d 和它的子代。
一个引用 LocalizationTable 用于应用自动本地化到此 GuiBase2d 和它的子代。
在下向方向中自定义游戏手柄选择行为。
在左向向选择游戏手柄的行为进行自定义。
自定义游戏手柄选择行为在正确的方向。
在上向方向中自定义游戏手柄选择行为。
允许自定义游戏手柄选择移动。
活动
继承自GuiBase2d的活动- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
在游戏手柄选择移动到,离开或更改连接的 GuiBase2d 或任何子对象。
属性
Active
控制子子会否接收输入事件。如果UI包含一个 GuiButton 按钮,那个按钮只会在Active 设置为 true 在 both BillboardGui 和按钮上才会变为可点击。
只有在玩家GUI上关联到BillboardGuis才会收到用户输入。BillboardGui.Adornee属性可以用来在工作区中将目标部分标记在UI上,而UI本身位于PlayerGui。
AlwaysOnTop
决定 BillboardGui 是否会在 3D 内容之上渲染,或被其覆盖。
设置为“关闭”时,广告牌图会像其他3D内容一样渲染,并且会被其他3D对象覆盖。
设置为“真”,它总是会在 3D 内容上渲染,且外观发生 значитель变化:
- 颜色与它们在 ScreenGui 中的样子匹配。
- 文本可能会在高 DPI 设备上更锋利。
- BillboardGui.LightInfluence 被处理为 0 。
- BillboardGui.Brightness 没有效果。
Brightness
亮度 决定图形GUI界面发射的光的比例。默认情况下,此属性为 1 ,可以设置为 0 到 1000 之间的任何数字。
通过修改此属性,可以更好地将 GUI 的亮度匹配到其环境。 例实例,如果在 Times Square 找到的视频广告牌照亮,可以使其在明亮的一天更加明显。
这个属性在以下场景中不会产生任何效果,其中 GUI 不会发出光:
- 当 AlwaysOnTop 是真的时候,每个像素的颜色都是屏幕上显示的颜色。
- 当 LightInfluence 是 1 时,所有从 GUI 发出的光都会反射到环境中,而不是发出。
CurrentDistance
Class.BillboardGui 从玩家的相镜头上的当前距离。一个更改的事件不会为此属性发射,除非 gui 的 BillboardGui.DistanceStep 超过 0。
DistanceLowerLimit
确定BillboardGui的尺寸在相对于玩家当前镜头的大小上会停止缩放。如果 Class.BillboardGui的距离小于此值,它将不会在此距离上缩放。此属性的默认值为 0 格。
DistanceStep
确定尺寸 BillboardGui.CurrentDistance 增加和减少在游玩家戏员的相机移动更近和更远从 BillboardGui 。 属性默认为 0 并从 BillboardGui.DistanceLowerLimit 开始。
例如,如果此属性设置为 0.5 ,玩家的相机从 0 开始移动,那么当前距离将增加 0 -> 0.5 -> 1 -> 1.5 -> ... 等等。
DistanceUpperLimit
确定游戏中的对象在相对于玩家的当前摄像镜头的尺寸上会缩放的距离。如果游戏中的对象的距离高于此值,它将不会缩放小于此值。
如果值小于 0,这个属性将被忽略。默认值是 -1,这意味着该属性由默认值被忽略。
ExtentsOffset
ExtentsOffset 决定 BillboardGui 的 Offset 从其 Adornee ,相对于 Camera 方向和单位是半尺寸模型的 0> Class.Camera0> - 对齐边方块。
还请参阅:
- ExtentsOffsetWorldSpace,其作用类似于除了偏移方向相对于全球轴以外
- StudsOffset,其中单位不是 studs
ExtentsOffsetWorldSpace
ExtentsOffsetWorldSpace 决定 BillboardGui 的 Offset 从其 Adornee ,相对于全球轴和单位是半尺寸模型的轴对齐边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边框的边方块
还请参阅:
- ExtentsOffset,其工作方式与偏移方向相同,除了偏移方向是相对于 Camera 的
- StudsOffsetWorldSpace,其中单位是 studs
LightInfluence
控制广告牌图形是否受到环境中的照明影响。
设置为 0 时,UI 会像 LCD 屏幕一样行为,作为其自己的光源,无论周围的照明如何。
当设置为 1 时,UI 会像纸片一样反射光,只会反射另一个源的光。
MaxDistance
Class.BillboardGui 的 MaxDistance 属性设置广告牌可以从相机远程得到多远,然后仍然可以被绘制。如果相机和广告牌远离了最大距离,那么广告牌就无法在任何其他广告牌或容器 GUI 对象上的任何其他属性上显示。此属性的默认值为无限。
如果此值设置为小于或等于 0 ,最大距离将被视为无限,广告牌永远都不会被吊显。
例子
-- 等待默认相机/控制脚本加载task.wait(5)-- 声明和初始化对象local camera = workspace.CurrentCameralocal part = Instance.new("Part")local billboard = Instance.new("BillboardGui")local label = Instance.new("TextLabel")-- 设置相机输入camera.CameraType = Enum.CameraType.Scriptable-- 设置零件的位置并锁定在 plac场景part.CFrame = CFrame.new(0, 10, 0)part.Anchored = true-- 设置广告牌billboard.MaxDistance = 10billboard.Adornee = partbillboard.AlwaysOnTop = truebillboard.Size = UDim2.fromOffset(50, 50)-- 设置标签label.Size = UDim2.fromScale(1, 1)-- 设置对象的父亲label.Parent = billboardbillboard.Parent = partpart.Parent = workspace-- 将相机移动到零件旁边。 稍等一段时间,然后将相机移镜头local cameraPosition0 = part.Position + Vector3.new(0, 0, 10)local cameraPosition1 = part.Position + Vector3.new(0, 0, 20)camera.CFrame = CFrame.lookAt(cameraPosition0, part.Position)-- 广告牌内容将在此显示task.wait(2)camera.CFrame = CFrame.lookAt(cameraPosition1, part.Position)-- Contents of billboard will no longer be visible (outside MaxDistance)
PlayerToHideFrom
用于隐藏特定玩家从 BillboardGui 的内容。
要隐藏 UI 对于多个玩家,请将 BillboardGui 放置在 StarterGui 中,并使用脚本设置 BillboardGui.Enabled 属性
SizeOffset
一个 2D 偏移在尺寸相对单位中,作为锚定点。 这可以与 GuiObject.AnchorPoint 属性类似,但值是不同的。
通用值
| 大小调整 | 说明 | | :| | | 0.0, 0.0 | 默认。 UI 将在其中心锚定。 | | 0.5, 0.5 | UI 将在左下角锚定。 | | 0.5, -0.5 | UI 将在右
还请参阅:
- StudsOffset,StudsOffsetWorldSpace,ExtentsOffset,0> Class.ToolbarGui.ExtentsOffsetWorldSpace|ExtentsOffset0>,其中所有其他偏移属性在 3D 空间中都不起作用
StudsOffset
StudsOffset 确定 BillboardGui 的 Offset 从其 Adornee 与 Camera 对象的相对位置,取决于使用单位在 studs 的单位。
还请参阅:
- StudsOffsetWorldSpace,其工作方式与偏移方向相同,但偏移方向与全球轴相对
- ExtentsOffset,其作用类似于除了单位是模型 Camera-aligned 边界方块的一半尺寸外
StudsOffsetWorldSpace
StudsOffsetWorldSpace 确定 BillboardGui 的 Offset 从其 Adornee 与相对于全球轴,用于 studs 的单位。
还请参阅:
- StudsOffset,其工作方式与偏移方向相同,除了偏移方向是相对于 Camera 的
- ExtentsOffsetWorldSpace,其中单位是模型的轴对齐边界方块的一半尺寸