ViewportFrame 是一個 GuiObject 可以在其範圍內渲染3D對象,提供一個方法來在2D空間中顯示3D對象,像ScreenGui一樣。這個對象有以下缺點:
- 沒有暗影或 post-processing 效果。
- Enum.Material.Neon 和 Enum.Material.Glass 材料以最低品質渲染。
- Class.GuiObject|GuiObjects 不支援。
- 由預設情況下,在 ViewportFrame 內的照明以 Lighting.EnvironmentSpecularScale 和 Lighting.EnvironmentDiffuseScale 設為 0,因此依賴這些字段的屬性,例如 1> Class.Surface1> ,可能會看起來不同。
範例程式碼
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui
local viewportFrame = Instance.new("ViewportFrame")
viewportFrame.Size = UDim2.new(0.3, 0, 0.4, 0)
viewportFrame.Position = UDim2.new(0, 15, 0, 15)
viewportFrame.BackgroundColor3 = Color3.new(0, 0, 0)
viewportFrame.BorderColor3 = Color3.new(0.6, 0.5, 0.4)
viewportFrame.BorderSizePixel = 2
viewportFrame.BackgroundTransparency = 0.25
viewportFrame.Parent = screenGui
local part = Instance.new("Part")
part.Material = Enum.Material.Concrete
part.Color = Color3.new(0.25, 0.75, 1)
part.Position = Vector3.new(0, 0, 0)
part.Parent = viewportFrame
local viewportCamera = Instance.new("Camera")
viewportFrame.CurrentCamera = viewportCamera
viewportCamera.Parent = viewportFrame
viewportCamera.CFrame = CFrame.new(Vector3.new(0, 2, 12), part.Position)
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui
local TweenService = game:GetService("TweenService")
local viewportFrame = Instance.new("ViewportFrame")
viewportFrame.Size = UDim2.new(0.3, 0, 0.4, 0)
viewportFrame.Position = UDim2.new(0, 15, 0, 15)
viewportFrame.BackgroundColor3 = Color3.new(0, 0, 0)
viewportFrame.BorderColor3 = Color3.new(0.6, 0.5, 0.4)
viewportFrame.BorderSizePixel = 2
viewportFrame.BackgroundTransparency = 0.25
viewportFrame.Parent = screenGui
local part = Instance.new("Part")
part.Material = Enum.Material.Concrete
part.Color = Color3.new(0.25, 0.75, 1)
part.Position = Vector3.new(0, 0, 0)
part.Parent = viewportFrame
local viewportCamera = Instance.new("Camera")
viewportFrame.CurrentCamera = viewportCamera
viewportCamera.Parent = viewportFrame
viewportCamera.CFrame = CFrame.new(Vector3.new(0, 2, 12), part.Position)
task.wait(2)
local cameraGoal = {
CFrame = CFrame.new(Vector3.new(0, 6, 4), part.Position),
}
local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(viewportCamera, tweenInfo, cameraGoal)
tween:Play()
概要
屬性
閃光燈適用於 ViewportFrame 內的區域。
Camera 用於渲染兒童物件。
決定如何為渲染圖像上色。
決定渲染圖像的透明度。
發射的光的顏色。
一個 Vector3 代表光原始碼方向。
決定這個輸入是否會沉沒在此 UI 元素。
對 GuiObject 的起始點,相對於其絕對大小。
決定是否會在基於兒童內容的重新縮放。
決定 GuiObject 背景顏色。
決定 GuiObject 背景和邊框的透明度。
決定 GuiObject 邊框的顏色。
決定GuiObject邊框的大小與邊框相對位置。
決定 GuiObject 邊框的像素寬度。
決定是否在超級父元素 GUI 元素外會成像子元素 GuiObjects。
決定玩家的滑鼠是否正在按在 GuiObject 上或不是。
決定 GuiButton 是否可以與或不與互動,或是否要檢查 GuiState 的 GuiObject 是否正在變更或不變更。
使用 GuiObject 時,控制 UIGridStyleLayout 的排序順序。
設定 GuiObject 將在遊戲控制器選擇器向下移動時選擇。
設定 GuiObject ,當遊戲控制器選擇器移動到左邊時會選擇。
設置 GuiObject 將在遊戲控制器選擇器移動到右邊時選擇。
設定 GuiObject 將在遊戲控制器選手柄上移動時選擇。
決定 GuiObject 的像素和矢量位置。
確定 GuiObject 旋轉的程度。
確認遊戲控制器可以選擇 GUI 嗎。
覆蓋遊戲手柄的預設裝飾。
遊戲控制器選擇 GuiObjects 的程序順序。
決定 GuiObject 的像素和浮點大小。
Class.GuiObject.BackgroundTransparency|BackgroundTransparency 和 TextTransparency 的混合屬性。
決定是否要渲染 GuiObject 和它的子孫。
決定 GuiObject 與其他人相對的排名。
描述介面元素的實際屏幕位置,以幣晃。
描述 UI 元素的實際螢幕旋轉度。
描述 UI 元素的實際屏幕尺寸,以幣晃。
設為真的時,本地化將適用於此 GuiBase2d 和它的後代。
一個引用 LocalizationTable 以應用自動本地化到這個 GuiBase2d 和它的後代。
在下向方向中自訂遊戲控制器選擇行為。
在左向方向中自訂遊戲控制器選擇行為。
自訂遊戲控制器選擇行為。
在上方向中自訂遊戲控制器選擇行為。
允許自訂遊戲控制器選擇動作。
方法
方法 繼承自 GuiObject- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
順滑地將一個 GUI 移至新的 UDim2 。
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
順滑地將 GUI 重新調整為新的 UDim2。
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
順滑地將一個 GUI 移動到新的尺寸和位置。
活動
活動 繼承自 GuiObject發生時間發生時,使用者開始使用人機交互裝置 (滑鼠按鈕, 觸摸開始, 鍵盤按鈕等等)。
使用者改變人機交互裝置 (滑鼠按鈕、觸摸開始、鍵盤按鈕等) 時發生時間。
發生時間當使用者停止使用人類電腦介面裝置 (滑鼠按鈕關閉, 觸摸開始, 鍵盤按鈕下等) 時。
使用者移動滑鼠到 GUI 元素時會發生火焰。
發射一個使用者從 GUI 元素移動滑鼠時。
在使用者移動鼠標時,發射 GUI 元素內的任何時間。
發射時,使用者將鼠標輪向返回,當滑鼠位於一個 GUI 元素上。
發射時,使用者將鼠標輪向前移動,當滑鼠位於 GUI 元素上。
發射時 GuiObject 與遊戲控制器選擇器專注。
發射時Gamepad選擇器停止專注在GUI對象上。
玩家開始時、繼續和停止按長按 UI 元素。
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
玩家移動指針時發射。
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
發射時玩家使用兩個手指在 UI 元素上執行點擊或拉動動作時。
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
發生時玩家使用兩個手指在 UI 元素上執行旋轉動作時。
發射玩家在介面元素上執行擺動手勢時。
發射玩家在介面元素上執行點擊動作時。
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
發射在遊戲控制器選擇移動到,離開,或變更連接的 GuiBase2d 或任何子選項 GuiObjects。
屬性
CurrentCamera
Camera 實例,用於渲染兒童對象。預設為 nil。
Class.Camera 對象不會重複,因此 ViewportFrame.CurrentCamera 也不會重複。當您設置此屬性時,Camera.CFrame 和 1>Class.Camera.FieldOfView物件> 將被儲存並重
ImageColor3
這個屬性決定如何為渲染圖像上色,讓您可以改變圖像顏色,而不需要直接修改渲染對物件。預設上色值是 Color3.new(1, 1, 1) (白色),在沒有顏色修改發生時發生。
也參閱 ImageTransparency 以確定渲染圖像的透明度。
ImageTransparency
這個屬性決定了渲染圖像的透明度,讓您可以改變圖像透明度,而不是直接修改渲染對物件。 0 值 (預設值) 是完全不透明的, 1 值 (透明) 是完全透明的(隱形)。
也參閱 ImageColor3,讓您可以決定如何為渲染圖像上色。