允許在 3D 世界上將 GUI 元素渲染到零件的表面,並允許基本使用者發生動。 表面Guis 必須是PlayerGui 的後代,才能知道哪個玩家與它互動。
為了提高性能,靜態 UI 的儲存
使用者介面的外觀會在下列事件發生時儲存:
- 一個子孫是添加到 Gui。
- 一個子孫從 Gui 移除。
- 一個 Gui 的子孫的屬性。
- GUI 的屬性變更。
如果發生任何一項事件,GUI 的外觀將在它渲染的下一個框架中重新計算。
概要
屬性
決定是否會在其他 3D 物件上方 always be render SurfaceGui。
決定因素 LightInfluence 是否為 0 時 GUI 的光線將會縮放。
'Virtual Screen' 的尺寸,以 'Virtual Pixel' 表示,使 SurfaceGuis 與 ScreenGuis 兼容。
設定為"真"時,在 SurfaceGui 的畫布邊緣之外的 GuiObjects 將不會顯示。
控制 SurfaceGui 是否受到遊戲世界中的照明影響。
控制 SurfaceGui 在停止渲染前可以顯示的距離。
決定 SurfaceGui 內容的顯示方式,包括:
決定 SurfaceGui 是否以固定尺寸或以其尺寸在 studs 上縮放。
設定在按下按鈕時開始在表面導覽器上作用的距離,而不是按住工具。
將 SurfaceGui 對應到它所屬的表面。
切換此 LayerCollector 的可見度。
決定每次玩家的角色重生時,LayerCollector 會重設 (刪除自己並重新複製到玩家的 PlayerGui 中)。
控制 GuiObject.ZIndex 在此 LayerCollector 的所有子代上的行為。
描述介面元素的實際屏幕位置,以幣晃。
描述 UI 元素的實際螢幕旋轉度。
描述 UI 元素的實際屏幕尺寸,以幣晃。
設為真的時,本地化將適用於此 GuiBase2d 和它的後代。
一個引用 LocalizationTable 以應用自動本地化到這個 GuiBase2d 和它的後代。
在下向方向中自訂遊戲控制器選擇行為。
在左向方向中自訂遊戲控制器選擇行為。
自訂遊戲控制器選擇行為。
在上方向中自訂遊戲控制器選擇行為。
允許自訂遊戲控制器選擇動作。
活動
活動 繼承自 GuiBase2d- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
發射在遊戲控制器選擇移動到,離開,或變更連接的 GuiBase2d 或任何子選項 GuiObjects。
屬性
AlwaysOnTop
決定 SurfaceGui 是否會在 3D 內容上重疊,或者被它覆蓋。
設為 false 時,表面導覽器會像其他 3D 內容一樣渲染,並且會被其他 3D 對象遮蔽。
設為真的時候,它總是在 3D 內容上重新渲染,並且外觀變更大幅:
- 顏色與 ScreenGui 中的顏色相匹配。
- 文字可能會在高 DPI 設備上顯示更銳利。
- SurfaceGui.LightInfluence 被扱為 0 的屬性。
- SurfaceGui.Brightness 沒有效果。
Brightness
光澤 決定GUI的發射光的比例。 預設值為 1 ,可以設置為範圍內的任何數字。
通過修改此屬性,可以更好地與環境相匹配。 例個體、實例,如果在 Times Square 找到的視頻廣告牌亮度足夠,它就可以在明亮的一天變得更明亮。
這個屬性在下列情況下不會發生任何效果:
- 當 AlwaysOnTop 是真的時,每個畫素的顏色都會顯示在畫面上。
- Class.SurfaceGui.LightInfluence|LightInfluence 是 1 時,所有從 GUI 發射的光都會反射從環境反射到環境而不會發射。
ClipsDescendants
設定為"真"時,在 SurfaceGui 的畫布邊緣之外的 GuiObjects 將不會顯示。
即使這個屬性是 false ,但在 SurfaceGui 的畫布外的對象將不會成像。
MaxDistance
控制表面導航可以顯示的距離,直到停止渲染。 值 0 表示沒有限制,它會在無限遠處 render 。
對於有許多 SurfaceGuis 的體驗,建議將其設置為每個 SurfaceGui 的合適值。 Studio 中插入 SurfaceGui 時的預設值是 1000,這應該對大多數使用者沒關係。
對於戶外的 UI,您應該設置最大距離遠足夠遠,讓螢幕上的 UI 在彈出時小,約 10 畫素。這使它在彈出時較少可被注意到。
您可以通過添加類似的裝飾減少彈出效果,或者通過將零件顏色變更為與界面外觀顏色相匹配的顏色來降低彈出效果。
對於室內空間,建議將 MaxDistance 設置稍微大一點,以便玩家在不同的房間時 UI 不會渲染。
PixelsPerStud
PixelsPerStud 決定每個世界範圍的 stud 使用的像素密度,以便渲染 SurfaceGui 的內容。
更高的值會讓各 GuiObject 內的元素縮小,如果保持相同的大小。反之,更
SizingMode
當設為 Enum.SurfaceGuiSizingMode.FixedSize 時,SurfaceGui 會使用 SurfaceGui.CanvasSize 設定的固定尺寸來渲染。
當設為 Enum.SurfaceGuiSizingMode.PixelsPerStud 時,SurfaceGui 會以 SurfaceGui.PixelsPerStud 和 SurfaceGui 的大小在 studs 中變更。