BillboardGuis 是 GuiObjects 在 3D 空間中出現的容器。BillboardGuis 總是面向攝影機,並且可以使用距離或保持尺寸來變更尺寸。基於 BillboardGui.Size 屬性,可以在屏幕上保持相同的尺寸,或者在距離上變更尺寸。
其位置相對於BillboardGui.Adornee。如果沒有設定Adornee,則BillboardGui的父親將會變成Adornee。對於BaseParts,父親將會變成Position。對於1>Class.
BillboardGui 的 Size 屬性與 GuiObject.Size 的屬性有點不同。 Offset 部分與 Class.Gui.Size 的大小相同,但 Scale 部分是用作 3D 空間中的尺寸。
UDim2.fromScale(4, 5) 的尺寸是 4x5 格子,並且在攝影機機距離越長,UI 就越小。UDim2.fromOffset(200, 100) 的尺寸會一直在畫面上,並且與距離無關。尺寸和 Offset 值可以
在創建尺寸大小為 BillboardGuis 時,需要確認所有的 UI 對象內部使用了尺寸變更,並且所有的文字都有 TextLabel.TextScaled 啟用,以確保正確的尺寸。
BillboardGui 和所有其子的相對位置是畫布的左上角,因此它的子孫 sempre 0, 0 對於 BillboardGui 實個體、實例。
為高效性統一溫存靜態介面
使用者介面的外觀會在下列事件發生時儲存:
- 一個子孫是添加到 Gui。
- 一個子孫從 Gui 移除。
- 一個 Gui 的子孫的屬性。
- GUI 的屬性變更。
如果發生任何一項事件,GUI 的外觀將在它渲染的下一個框架中重新計算。
概要
屬性
控制子孫是否收到輸入事件。
設定廣告牌GUI 的位置。
決定是否在 3D 內容前方或後方顯示 BillboardGui。
決定因素 LightInfluence 是否為 0 時 GUI 的光線將會縮放。
設定為 "真" 時,在BillboardGui 的畫布邊緣之外的 GuiObjects 將不會顯示。
Class.BillboardGui 的距離是從玩家的相攝影機來的。
決定BillboardGui會在尺寸上升級時停止擴大的距離。
距離將會回合到這值的增量。
決定BillboardGui會在尺寸上變小時停止縮放的距離。
決定 BillboardGui 是否從其 Adornee 中的偏移,相對於 Camera 方向和單位是模型的 Camera 綁定方塊的半尺寸。
決定 BillboardGui 是否從其 Adornee 的 Offset ,相對於全球軸和單位的尺寸是模型的軸對稱方塊子的半分。
控制 BillboardGui 是否受到環境中的照明影響。
設定廣告牌可以從相機和仍然被畫製的最大距離。
可用於從特定玩家隱藏 BillboardGui。
控制 BillboardGui 在屏幕上的大小。
一個 2D 位置偏移,作為錨定點使用。
決定 BillboardGui 的全球軸和單位在 studs 的相對位置。
切換此 LayerCollector 的可見度。
決定每次玩家的角色重生時,LayerCollector 會重設 (刪除自己並重新複製到玩家的 PlayerGui 中)。
控制 GuiObject.ZIndex 在此 LayerCollector 的所有子代上的行為。
描述介面元素的實際屏幕位置,以幣晃。
描述 UI 元素的實際螢幕旋轉度。
描述 UI 元素的實際屏幕尺寸,以幣晃。
設為真的時,本地化將適用於此 GuiBase2d 和它的後代。
一個引用 LocalizationTable 以應用自動本地化到這個 GuiBase2d 和它的後代。
在下向方向中自訂遊戲控制器選擇行為。
在左向方向中自訂遊戲控制器選擇行為。
自訂遊戲控制器選擇行為。
在上方向中自訂遊戲控制器選擇行為。
允許自訂遊戲控制器選擇動作。
活動
活動 繼承自 GuiBase2d- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
發射在遊戲控制器選擇移動到,離開,或變更連接的 GuiBase2d 或任何子選項 GuiObjects。
屬性
Active
控制子孫是否接收輸入事件。如果介面包含一個 GuiButton 按鈕,那個按鈕只會在兩個 BillboardGui 和按鈕上設為啟用,如果啟用設為 true 的話。
BillboardGuis 只會接受玩家輸入,如果它們與 PlayerGui 相關。BillboardGui.Adornee 屬性可以用來在工作區中瞄準零件,而玩家自己在 PlayerGui 中。
AlwaysOnTop
決定是否要在 3D 內容上方顯示廣告導覽器,或是否被它遮蔽。
設為 false 時,BillboardGui 會像其他 3D 內容一樣渲染,並且會被其他 3D 對象遮蔽。
設為真的時候,它總是在 3D 內容上重新渲染,並且外觀變更大幅:
- 顏色與 ScreenGui 中的顏色相匹配。
- 文字可能會在高 DPI 設備上顯示更銳利。
- BillboardGui.LightInfluence 被扱為 0 的屬性。
- BillboardGui.Brightness 沒有效果。
Brightness
光澤 決定GUI的發射光的比例。 預設值為 1 ,可以設置為範圍內的任何數字。
通過修改此屬性,可以更好地與環境相匹配。 例個體、實例,如果在 Times Square 找到的視頻廣告牌亮度足夠,它就可以在明亮的一天變得更明亮。
這個屬性在下列情況下不會發生任何效果:
- 當 AlwaysOnTop 是真的時,每個畫素的顏色都會顯示在畫面上。
- Class.BillboardGui.LightInfluence|LightInfluence 是 1 時,所有從 GUI 發射的光都會反射從環境反射到環境而不會發射。
ClipsDescendants
設定為 "真" 時,在BillboardGui 的畫布邊緣之外的 GuiObjects 將不會顯示。
即使這個屬性是 false ,但在BillboardGui 的 canvas 外的物件將不會成像。
CurrentDistance
Class.BillboardGui 的當前距離是從玩家的相攝影機發射的。變更的事件不會在此屬性發生,除非 BillboardGui.DistanceStep 的 gui 是更大的 0 以上。
DistanceLowerLimit
Class.BillboardGui 將在對玩家的目前攝影機相對於其大小進行縮放時停止縮放。如果 gui 的距離小於此值,它將不會縮放大於此值。此屬性的預設值為 0 格子。
DistanceStep
決定鏡頭移動到 BillboardGui.CurrentDistance 的距離增加和減少的尺寸。 此屬性預設為 0 並且從 BillboardGui 開始圓滿。 該屬性的預設值為 0 。 從 BillboardGui.DistanceLowerLimit 開始圓滿。
舉例來說,如果此屬性設為 0.5,玩家的相機從零開始移動,那麼當前距離會增加 0 -> 0.5 -> 1 -> 1.5 -> ... 等等。
DistanceUpperLimit
Class.BillboardGui 將縮放尺寸與玩家目前的攝影機相對而言變小。如果距離 Class.BillboardGui 超過此值,它將不會縮放到此距離。
此屬性在值為零以下時會被忽略。預設值為 -1,表示此屬性以預設方式被忽略。
ExtentsOffset
ExtentsOffset 決定BillboardGui 的BillboardGui.Adornee|Adornee 對Adornee 的方向和單位相對於模型的Camera - 對準框的尺寸是模型的0> Class.Camera0> 中的一方塊。
也看:
- ExtentsOffsetWorldSpace,其中偏移方向與全球軸相對
- StudsOffset,其中單位是 studs
ExtentsOffsetWorldSpace
ExtentsOffsetWorldSpace 決定BillboardGui 的 Offset 從其 Adornee 對全球軸和單位的尺寸是半個尺寸模型的軸對邊方塊。
也看:
- ExtentsOffset,其中偏移方向與 Camera 無關
- StudsOffsetWorldSpace,其中單位是 studs
LightInfluence
控制 BillboardGui 是否受到環境中的照明影響。
當設為 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-- 設定零件的位置並鎖空間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 中,並使用指定的 Class.BillboardGui
Size
控制 BillboardGui 在屏幕上的大小。
大小的比例項目以格子的大小解釋為格子的大小,並且UI將會自動縮放距離,如果使用了大小值。
大小的比例和偏移部分可以一起添加,並且可以一起使用。
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 bounding box的半尺寸
StudsOffsetWorldSpace
StudsOffsetWorldSpace 決定 BillboardGui 的 Offset 從其 Adornee 對全球軸的相對位置。
也看:
- StudsOffset,其中偏移方向與 Camera 無關
- ExtentsOffsetWorldSpace,其中單位的大小與模型的軸對邊界方塊的大小相同, except 單位的大小與模型的軸對邊界框的大小相同