ViewportFrame 는 GuiObject 이며 그 안에서 3D 개체를 렌더링하여 2D 공간에서 3D 개체를 표시하는 방법을 제공합니다. 이 개체는 다음과 같은 문제가 있습니다.
- 그림자나 포스트 처리 효과가 렌더링되지 않습니다.
- Enum.Material.Neon 및 Enum.Material.Glass 재료는 최저 품질에서 렌더링됩니다.
- Nested GuiObjects 은 지원되지 않습니다.
- 기본적으로 조명은 ViewportFrame 내에 있는 것처럼 작동하며, Lighting.EnvironmentSpecularScale 및 Lighting.EnvironmentDiffuseScale 모두 0으로 설정되어 있기 때문에 이러한 필드에 의존하는 속성, 예를 들어 1> Class.
코드 샘플
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()
요약
속성
Class.ViewportFrame 내의 영역에 적용된 조명 컬러.
Camera 이 사용됩니다.
렌더링된 이미지에 색상을 지정하는 방법을 결정합니다.
렌더링 이미지의 투명도를 결정합니다.
방출되는 빛의 색.
Datatype.Vector3 라이트 소스의 방향을 나타내는 것.
이 UI 요소가 입력을 싱크하는지 여부를 결정합니다.
절대 크기에 대해 GuiObject 의 원래 크기를 결정합니다.
자식 콘텐츠에 따라 크기 조정이 발생하는지 여부를 결정합니다.
Class.GuiObject 배경 색상을 결정합니다.
Class.GuiObject 배경과 경계의 투명도를 결정합니다.
Class.GuiObject 경계의 색을 결정합니다.
크기 축소에 따라 GuiObject 범위의 경계가 어떻게 설정되는지 결정합니다.
Class.GuiObject 범위의 픽셀 너비를 결정합니다.
부모 GUI 요소의 범위 내에서 내려지는 경우 GuiObjects 을 렌더링할지 여부를 결정합니다.
플레이어의 마우스가 GuiObject에 활성적으로 누르고 있는지 여부를 결정합니다.
Class.GuiButton 이 인터랙션 가능한지 여부를 결정하고, GuiState 의 GuiObject 가 변경되었는지 여부를 결정합니다.
Class.UIGridStyleLayout 와 함께 사용할 때 UIGridStyleLayout 의 정렬 순서를 제어합니다.
게임 패드 선택기가 내려지면 선택할 GuiObject 를 설정합니다.
왼쪽 게임 패드 선택기에 배치될 때 GuiObject 를 설정합니다.
오른쪽 게임 패드 선택기에 배치될 GuiObject 를 설정합니다.
게임 패드 선택기가 위로 이동할 때 선택할 GuiObject 설정합니다.
Class.GuiObject의 픽셀 및 스칼라 위치를 결정합니다.
Class.GuiObject가 회전하는 데 사용되는 도 수를 결정합니다.
게임 패드에서 GUI 를 선택할 수 있는지 여부를 결정하십시오.
게임 패드에 사용되는 기본 선택 장식을 재정의합니다.
게임 패드 선택에 의해 선택된 <Class.GuiObject|GuiObjects>의 순서입니다.
Class.GuiObject의 픽셀 및 스칼라 크기를 결정합니다.
Class.GuiObject.Size|Size 축을 설정하면 GuiObject의 부모 크기에 대해 기반을 둔다.
Class.GuiObject.BackgroundTransparency|BackgroundTransparency 및 TextTransparency의 혼합 속성.
Class.GuiObject 및 그 후손이 렌더링될지 여부를 결정합니다.
다른 요소와 비슷한 순서로 GuiObject 렌더링을 결정합니다.
UI 요소의 실제 화면 위치를 픽셀로 설명합니다.
UI 요소의 실제 화면 회전을 정도로 설명합니다.
UI 요소의 실제 화면 크기를 픽셀로 설명합니다.
설정을 사용하면 이 GuiBase2d와 그 후손에 대해 현지화가 적용됩니다.
이 GuiBase2d와 그 후손에 자동화 로컬화를 적용하기 위한 LocalizationTable 참조.
아래로 향하는 게임 패드 선택 동작을 사용자 정의합니다.
왼쪽 방향에서 게임 패드 선택 동작을 사용자 정의합니다.
오른쪽 방향으로 게임 패드 선택 동작을 사용자 정의합니다.
게임 패드 선택 동작을 위쪽으로 사용자 정의합니다.
게임 패드 선택 이동을 사용자 정의할 수 있습니다.
메서드
메서드가 GuiObject에서 상속되었습니다- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
새로운 Datatype.UDim2로 GUI를 부드럽게 이동합니다.
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
새로운 Datatype.UDim2로 GUI를 원활하게 조정합니다.
- 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 요소 위에 있을 때 사용자가 마우스 휠을 앞으로 스크롤할 때 발생합니다.
Gamepad 선택기로 집중되는 동안 GuiObject가 발생했습니다.
게임 패드 선택기가 GuiObject에 집중하지 않을 때 발생합니다.
플레이어가 UI 요소를 길게 누르면 시작, 계속하기 및 중지합니다.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
플레이어가 UI 요소에 손가락을 이동할 때 화면에 표시됩니다.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
두 손가 UI 요소에 대해 썰매거나 끌기 동작을 수행할 때 화면에 나타납니다.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
두 개의 손가락을 사용하여 UI 요소를 회전하는 플레이어를 발생시킵니다.
플레이어가 UI 요소에서 스와이프 동작을 수행할 때 화면에 나타납니다.
플레이어가 UI 요소에 탭 동작을 수행할 때 발생합니다.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
게임 패드 선택이 이동하거나 떠나거나 연결된 GuiBase2d 또는 모든 하위 GuiObjects 내에서 변경되면 화면에 표시됩니다.
속성
CurrentCamera
Camera 인스턴스는 자식 개체를 렌더링하는 데 사용됩니다. 기본값은 nil입니다.
Class.Camera 개체는 복제되지 않으므로 클라이언트에서 프레임을 렌더링하는 데 사용되는 Class.ViewportFrame.CurrentCamera 도 복제되지 않습니다. 이 속성을 설정하면
ImageColor3
이 속성은 렌더링된 이미지에 색을 입히는 방법을 결정하므로 렌더링 개체를 직접 수정하지 않고 이미지 색상을 변경할 수 있습니다. 기본 색상 값은 Color3.new(1, 1, 1) (하얀색)이며, 색상 변경이 발생하지 않습니다.
또한 ImageTransparency 이 렌더링된 이미지의 투명도를 결정합니다.
ImageTransparency
이 속성은 렌더링된 이미지의 투명도를 결정하여 렌더링 개체를 직접 수정하지 않고 이미지 투명도를 변경할 수 있습니다. 값 0(기본)은 완전히 불투명하며 값 1(투명)은 완전히 투명합니다(보이지 않음).
또한 ImageColor3 이 렌더링된 이미지의 색상을 결정합니다.