GuiObject 는 2D 사용자 인터페이스 개체에 대한 모든 속성을 정의합니다( Class.
특정 방식으로 GUI 개체의 레이아웃을 조작하려면 목록/유연 개체 또는 그리드 와 같은 레이아웃 구조를 사용하거나 모양 모드터를 통해 코어 속성을 넘어 스타일할 수 있습니다.To manipulate the layout of GUI objects in special ways, you can use a layout structure such as list/flex or grid , and you can style them beyond their core properties through appearance modifiers .
Class.GuiObject.InputBegan|InputBegan 및 InputEnded 를 사용하여 모든 GUI 개체에서 마우스 버튼 이벤트를 감지하는 것이 가능하지만, ImageButton 및 1>Class
요약
속성
이 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 참조.
아래로 향하는 게임 패드 선택 동작을 사용자 정의합니다.
왼쪽 방향에서 게임 패드 선택 동작을 사용자 정의합니다.
오른쪽 방향으로 게임 패드 선택 동작을 사용자 정의합니다.
게임 패드 선택 동작을 위쪽으로 사용자 정의합니다.
게임 패드 선택 이동을 사용자 정의할 수 있습니다.
메서드
- 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를 부드럽게 이동합니다.
이벤트
사용자가 인간-컴퓨터 인터페이스 장치(마우스 버튼 다운, 터치 시작, 키보드 버튼 다운 등)를 통해 상호 작용하기 시작하면 발생합니다.
사용자가 인간-컴퓨터 인터페이스 장치(마우스 버튼 다운, 터치 시작, 키보드 버튼 다운 등)를 통해 상호 작용 방식을 변경할 때 발생합니다.
사용자가 인간-컴퓨터 인터페이스 장치(마우스 버튼 아래, 터치 시작, 키보드 버튼 아래 등)를 통해 상호 작용을 중지할 때 발생합니다.
사용자가 마우스를 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 내에서 변경되면 화면에 표시됩니다.
속성
Active
이 속성은 이 GuiObject 가 기본 모델과 같이 입력을 3D 공간으로 싱크하는지 여부를 결정합니다. 여기에는 ClickDetector 클래스와 같은 활성 인터페이스 요소가 있습니다. 즉, 플레이어가 활성 인터페이스 요소
Class.GuiButton.Activated|Activated 개체(ImageButton 및 Class
코드 샘플
-- Place this LocalScript within a TextButton (or ImageButton)
local textButton = script.Parent
textButton.Text = "Click me"
textButton.Active = true
local function onActivated()
-- This acts like a debounce
textButton.Active = false
-- Count backwards from 5
for i = 5, 1, -1 do
textButton.Text = "Time: " .. i
task.wait(1)
end
textButton.Text = "Click me"
textButton.Active = true
end
textButton.Activated:Connect(onActivated)
AnchorPoint
Class.GuiObject 개체의 원래 크기에 대해 GuiObject Class.GuiObject 개체의 원래 점이 결정됩니다. 원래 크기는 절대 크기입니다. 원래 점은 GuiObject.Position 을 통해 요소가 배치되는 곳과 함께 결정됩니다. 원래 크기는 렌
자세한 내용은 여기 참조하십시오.
코드 샘플
local guiObject = script.Parent
while true do
-- Top-left
guiObject.AnchorPoint = Vector2.new(0, 0)
guiObject.Position = UDim2.new(0, 0, 0, 0)
task.wait(1)
-- Top
guiObject.AnchorPoint = Vector2.new(0.5, 0)
guiObject.Position = UDim2.new(0.5, 0, 0, 0)
task.wait(1)
-- Top-right
guiObject.AnchorPoint = Vector2.new(1, 0)
guiObject.Position = UDim2.new(1, 0, 0, 0)
task.wait(1)
-- Left
guiObject.AnchorPoint = Vector2.new(0, 0.5)
guiObject.Position = UDim2.new(0, 0, 0.5, 0)
task.wait(1)
-- Dead center
guiObject.AnchorPoint = Vector2.new(0.5, 0.5)
guiObject.Position = UDim2.new(0.5, 0, 0.5, 0)
task.wait(1)
-- Right
guiObject.AnchorPoint = Vector2.new(1, 0.5)
guiObject.Position = UDim2.new(1, 0, 0.5, 0)
task.wait(1)
-- Bottom-left
guiObject.AnchorPoint = Vector2.new(0, 1)
guiObject.Position = UDim2.new(0, 0, 1, 0)
task.wait(1)
-- Bottom
guiObject.AnchorPoint = Vector2.new(0.5, 1)
guiObject.Position = UDim2.new(0.5, 0, 1, 0)
task.wait(1)
-- Bottom-right
guiObject.AnchorPoint = Vector2.new(1, 1)
guiObject.Position = UDim2.new(1, 0, 1, 0)
task.wait(1)
end
AutomaticSize
이 속성은 자식의 크기에 따라 부모 UI 개체의 크기를 자동으로 조정하기 위해 사용됩니다. 이 속성을 사용하여 편집 또는 실행 시 부모 UI 개체에 텍스트 및 기타 콘텐츠를 동적으로 추가하고 크기가 콘텐츠에 맞게 조정되도록 합니다.
AutomaticSize 가 어떤 값으로 설정되었든 Enum.AutomaticSize 값에 대해 어떤 다른 값에 대해 크기를 조정할 수 있습니다. 이 UI 개체는 자식 콘텐츠에 따라 크기를 조정할 수 있습니다.
이 속성에 대한 자세한 내용은 여기 를 참조하십시오.
코드 샘플
-- Array of text labels/fonts/sizes to output
local labelArray = {
{ text = "Lorem", font = Enum.Font.Creepster, size = 50 },
{ text = "ipsum", font = Enum.Font.IndieFlower, size = 35 },
{ text = "dolor", font = Enum.Font.Antique, size = 55 },
{ text = "sit", font = Enum.Font.SpecialElite, size = 65 },
{ text = "amet", font = Enum.Font.FredokaOne, size = 40 },
}
-- Create an automatically-sized parent frame
local parentFrame = Instance.new("Frame")
parentFrame.AutomaticSize = Enum.AutomaticSize.XY
parentFrame.BackgroundColor3 = Color3.fromRGB(90, 90, 90)
parentFrame.Size = UDim2.fromOffset(25, 100)
parentFrame.Position = UDim2.fromScale(0.1, 0.1)
parentFrame.Parent = script.Parent
-- Add a list layout
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 5)
listLayout.Parent = parentFrame
-- Set rounded corners and padding for visual aesthetics
local roundedCornerParent = Instance.new("UICorner")
roundedCornerParent.Parent = parentFrame
local uiPaddingParent = Instance.new("UIPadding")
uiPaddingParent.PaddingTop = UDim.new(0, 5)
uiPaddingParent.PaddingLeft = UDim.new(0, 5)
uiPaddingParent.PaddingRight = UDim.new(0, 5)
uiPaddingParent.PaddingBottom = UDim.new(0, 5)
uiPaddingParent.Parent = parentFrame
for i = 1, #labelArray do
-- Create an automatically-sized text label from array
local childLabel = Instance.new("TextLabel")
childLabel.AutomaticSize = Enum.AutomaticSize.XY
childLabel.Size = UDim2.fromOffset(75, 15)
childLabel.Text = labelArray[i]["text"]
childLabel.Font = labelArray[i]["font"]
childLabel.TextSize = labelArray[i]["size"]
childLabel.TextColor3 = Color3.new(1, 1, 1)
childLabel.Parent = parentFrame
-- Visual aesthetics
local roundedCorner = Instance.new("UICorner")
roundedCorner.Parent = childLabel
local uiPadding = Instance.new("UIPadding")
uiPadding.PaddingTop = UDim.new(0, 5)
uiPadding.PaddingLeft = UDim.new(0, 5)
uiPadding.PaddingRight = UDim.new(0, 5)
uiPadding.PaddingBottom = UDim.new(0, 5)
uiPadding.Parent = childLabel
task.wait(2)
end
BackgroundColor3
이 속성은 GuiObject 배경 색 (채우기 색)를 결정합니다. 요소에 텍스트가 있는 경우, TextBox , TextButton 또는 1> Class.TextLabel1> 와 같은 텍스트의 색과 배경의 색이 일치하는지 확인하십시오.
배경의 시각적 속성을 결정하는 또 다른 속성은 GuiObject.BackgroundTransparency 입니다. 이 속성이 1로 설정되면 배경도 보이지 않고 경계도 보이지 않습니다.
또한 보세요 BorderColor3.
코드 샘플
-- Put this code in a LocalScript in a Frame
local frame = script.Parent
while true do
for hue = 0, 255, 4 do
-- HSV = hue, saturation, value
-- If we loop from 0 to 1 repeatedly, we get a rainbow!
frame.BorderColor3 = Color3.fromHSV(hue / 256, 1, 1)
frame.BackgroundColor3 = Color3.fromHSV(hue / 256, 0.5, 0.8)
task.wait()
end
end
BackgroundTransparency
이 속성은 GuiObject 배경 및 경계를 투명하게 결정합니다. 그러나 텍스트가 GUI인 경우 TextBox, 또는 Class.TextLabel
이 속성이 1 로 설정되면 배경도 그리고 경계도 렌더링되지 않으며 GUI 배경도 완전히 투명합니다.
BorderColor3
Class.GuiObject 직사각형 경계의 색을 결정합니다(또한 색상 색상이라고도 함). 이 속성은 개체의 GuiObject.BackgroundColor3 에서 볼 수 없습니다. 개체의 경계가 GuiObject.BorderSizePixel 로 설정되어 있으면 개체의 경
Class.UIStroke 구성 요소는 더 고급적인 경계 효과를 지원합니다.
코드 샘플
-- Put me inside some GuiObject, preferrably an ImageButton/TextButton
local button = script.Parent
local function onEnter()
button.BorderSizePixel = 2
button.BorderColor3 = Color3.new(1, 1, 0) -- Yellow
end
local function onLeave()
button.BorderSizePixel = 1
button.BorderColor3 = Color3.new(0, 0, 0) -- Black
end
-- Connect events
button.MouseEnter:Connect(onEnter)
button.MouseLeave:Connect(onLeave)
-- Our default state is "not hovered"
onLeave()
BorderMode
이 속성은 같은 이름의 열거형을 사용하여 크기에 대해 GuiObject 경계를 정의합니다.
Class.UIStroke 는 이 속성을 재정의하여 더 복잡한 경계 효과를 사용할 수 있습니다.
BorderSizePixel
이 속성은 GuiObject 범위 내의 경계 렌더링을 픽셀 단위로 결정합니다. 이 값을 0으로 설정하면 경계가 완전히 비활성화됩니다.
Class.UIStroke 는 이 속성을 재정의하여 더 복잡한 경계 효과를 사용할 수 있습니다.
코드 샘플
-- Put me inside some GuiObject, preferrably an ImageButton/TextButton
local button = script.Parent
local function onEnter()
button.BorderSizePixel = 2
button.BorderColor3 = Color3.new(1, 1, 0) -- Yellow
end
local function onLeave()
button.BorderSizePixel = 1
button.BorderColor3 = Color3.new(0, 0, 0) -- Black
end
-- Connect events
button.MouseEnter:Connect(onEnter)
button.MouseLeave:Connect(onLeave)
-- Our default state is "not hovered"
onLeave()
ClipsDescendants
이 속성은 GuiObject가 손님 섬유 요소의 내부를 숨기는지 여부를 결정합니다. 그렇지 않으면 손님 섬유 요소의 내부가 직사각형의 경계 밖으로 표시됩니다.
이 속성에서 지원되지 않는 GuiObject.Rotation 은 이 속성에 포함된 하위 속성 Class.GuiObject.Rotation 이 지원되지 않습니다. 이 속성이나 상위 속성에 있는 하위 속성 GuiObject.Rotation 이 지원되지 않으면 이 속성의 하위 요소인 다른 하위 요소
Interactable
Class.GuiButton 이 인터랙션 가능한지 여부를 결정하고, GuiState 의 GuiObject 가 변경되었는지 여부를 결정합니다.
On a GuiButton :
- Class.GuiButton 에 설정된 GuiButton 는 false 로 설정되었으므로 1>Class.GuiButton1> 을 더 이상 누르거나 클릭할 수 없으며 4>
- Class.GuiButton 에 설정된 GuiButton 는 true 로 설정되었으며, 1>Class.GuiButton1> 는 정상적으로 동작하고 4>Class.GuiObject.GuiState|GuiState4> 는 정상적으로 동작합니다.
On a GuiObject :
LayoutOrder
이 속성은 클래스 GuiObject 의 정렬 순서를 제어합니다. UIGridStyleLayout (예: UIListLayout 또는 1>Class.UIPageLayout1> )에 4>
GuiObjects 는 하위 값이 높은 값보다 우선적으로 정렬되어 있습니다. 같은 값을 가진 개체는 추가된 순서대로 다시 순위가 매겨집니다.
미래에 두 개의 기존 요소 사이에 요소를 추가해야 할지 확실하지 않은 경우 다음과 같은 모범 사례를 사용하여 100 ( 0 , 100 , 1> 2001> 등의 레이아웃
또한 ZIndex 를 참조하십시오, 이는 순서가 아닌 순서로 개체의 렌더링 순서를 결정합니다.
NextSelectionDown
이 속성은 사용자가 게임 패드 선택기를 아래로 이동할 때 GuiObject 선택을 설정합니다. 이 속성이 비어 있으면 게임 패드를 아래로 이동하면 선택한 GUI가 변경되지 않습니다.
게임 패드 선택기를 아래로 이동하면 GuiService.SelectedObject 이 개체를 이 개체로 설정하지 않습니다. GUI가 선택 가능하지 않은 경우 이 속성을 GUI 요소에 설정할 수도 있지만, 이 속성이 기본적으로 설정된 경우
또한 참조하십시오 NextSelectionUp , NextSelectionLeft 및 NextSelectionRight .
코드 샘플
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionLeft
이 속성은 사용자가 게임 패드 선택기를 왼쪽으로 이동할 때 GuiObject 선택을 설정합니다. 이 속성이 비어 있으면 게임 패드를 왼쪽으로 이동하면 선택한 GUI가 변경되지 않습니다.
게임 패드 선택기를 왼쪽으로 이동하면 GuiService.SelectedObject 이 개체를 이 개체에 설정하지 않습니다. 이 속성을 설정하면 대부분의 GUI 요소가 선택 가능하지 않거나 선택 가능하지 않음을 나타냅니다.
또한 NextSelectionUp, NextSelectionDown, NextSelectionRight 를 참조하십시오.
코드 샘플
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionRight
이 속성은 사용자가 게임 패드 선택기를 오른쪽으로 이동할 때 GuiObject 선택을 설정합니다. 이 속성이 비어 있으면 게임 패드를 오른쪽으로 이동하면 선택한 GUI가 변경되지 않습니다.
게임 패드 선택기를 오른쪽으로 이동하면 GuiService.SelectedObject 이 개체를 이 개체에 설정하지 않습니다. 이 속성을 설정하면 이 개체에 대해 게임 GUI가 선택할 수 있지 않습니다. 이 속성을 설정하면 이 개체
또한 참조하십시오 NextSelectionUp, NextSelectionDown 및 NextSelectionLeft.
코드 샘플
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionUp
이 속성은 사용자가 게임 패드 선택기를 위로 이동할 때 GuiObject 선택을 설정합니다. 이 속성이 비어 있으면 게임 패드를 위로 이동하면 선택한 GUI가 변경되지 않습니다.
게임 패드 선택기를 위로 이동하면 GuiService.SelectedObject 이 개체를 이 개체에 설정하지 않습니다. GUI가 선택 가능하지 않은 경우 이 속성을 설정하면 예상 행동을 얻을 수 있습니다. 이 속성을 설정하면 게임
또한 NextSelectionDown , NextSelectionLeft , NextSelectionRight 을 참조하십시오.
코드 샘플
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
Position
이 속성은 GuiObject 픽셀 및 스칼러 위치를 사용하여 위치를 결정합니다. 위치는 개체의 UDim2 주위에 중심이 있습니다.
직사각형 위치는 부모 GUI 요소의 크기와 상대적입니다.
Datatype.UDim2 값의 픽셀 부분은 모든 부모 GUI 크기에 동일합니다. 값은 개체의 위치를 픽셀로 나타냅니다. 개체의 실제 픽셀 위치는 GuiBase2d.AbsolutePosition 속성에서 읽을 수 있습니다.
Rotation
이 속성은 개체가 회전하는 정도를 결정합니다. 회전은 개체의 중심에 대한 것이며, GuiObjectClass.GuiObject.AnchorPoint|AnchorPoint 가 아니라는 것을 의미합니다. 또한 이 속성은
Selectable
이 속성은 게임 패드를 사용하여 GUI를 탐색할 때 GuiObject 를 선택할 수 있는지 여부를 결정합니다.
이 속성이 트루인 경우, GUI를 선택할 수 있습니다. GUI를 선택하면 GuiService.SelectedObject 속성도 해당 개체에 설정됩니다.
이 경우 GUI를 선택할 수 없습니다. 그러나 GUI를 선택하면 이 속성을 설정하면 선택한 GUI를 선택하지 않으며 GuiService.SelectedObject 속성의 값을 변경하지 않습니다.
Class.GuiObject.SelectionGained 및 GuiObject.SelectionLost 는 요소에 대해 발생하지 않습니다. 을 선택하면 GuiService.SelectedObject 속성을 변경해야 합니다.
이 속성은 다음과 같은 속성을 통해 여러 GUI에 연결된 GUI를 여러 개의 GUI에 연결하는 경우에 유용합니다. GuiObject.NextSelectionUp, Class
코드 샘플
local GuiService = game:GetService("GuiService")
local textBox = script.Parent
local function gainFocus()
textBox.Selectable = true
GuiService.SelectedObject = textBox
end
local function loseFocus(_enterPressed, _inputObject)
GuiService.SelectedObject = nil
textBox.Selectable = false
end
-- The FocusLost and FocusGained event will fire because the textBox
-- is of type TextBox
textBox.Focused:Connect(gainFocus)
textBox.FocusLost:Connect(loseFocus)
SelectionImageObject
이 속성은 게임 패드에 사용되는 기본 선택 장식을 재정의합니다.
선택한 SelectionImageObject 는 이미지의 GuiObject 를 Size 로 덮어씁니다. 최상의 결과를 위해, 사용자 정의 1> SelectionImageObject1> 를 크기를 조정하기 위해 크
Class.GuiObject 요소에 대한 선택 항목을 변경하면 해당 요소에만 영향을 줍니다. 사용자의 모든 GUI 요소에 영향을 미치려면 Class.PlayerGui.SelectionImageObject 속성을 설정하십시오.
사용자가 어떤 GUI 요소를 선택하는지 결정하거나 설정하려면 GuiService.SelectedObject 속성을 사용할 수 있습니다. 플레이어는 게임 패드를 사용하여 다
SelectionOrder
선택 순서가 낮은 GuiObjects는 게임 패드 선택을 시작하거나 GuiService:Select()를 부모에게 호출할 때 선택됩니다. 이 속성은 방향 탐색에 영향을 주지 않습니다. 기본값은 0입니다.
Size
이 속성은 GuiObject 스칼러 및 픽셀 크기를 결정하는 데 사용됩니다. UDim2 .
길이는 부모 GUI 요소의 크기와 상대적입니다.
Datatype.UDim2 값의 픽셀 부분은 모든 부모 GUI 크기에 동일합니다. 값은 개체의 픽셀 크기를 나타냅니다. 개체의 실제 픽셀 크기는 GuiBase2d.AbsoluteSize 속성에서 읽을 수 있습니다.
Class.GuiObject 가 부모가 있으면 각 축에 따라 크기가 영향을 받습니다. 부모의 SizeConstraint 는 부모의 크기에 영향을 줍니다.
코드 샘플
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Paste script into a LocalScript that is
-- parented to a Frame within a Frame
local frame = script.Parent
local container = frame.Parent
container.BackgroundColor3 = Color3.new(0, 0, 0) -- black
-- This function is called when the humanoid's health changes
local function onHealthChanged()
local human = player.Character.Humanoid
local percent = human.Health / human.MaxHealth
-- Change the size of the inner bar
frame.Size = UDim2.new(percent, 0, 1, 0)
-- Change the color of the health bar
if percent < 0.1 then
frame.BackgroundColor3 = Color3.new(1, 0, 0) -- black
elseif percent < 0.4 then
frame.BackgroundColor3 = Color3.new(1, 1, 0) -- yellow
else
frame.BackgroundColor3 = Color3.new(0, 1, 0) -- green
end
end
-- This function runs is called the player spawns in
local function onCharacterAdded(character)
local human = character:WaitForChild("Humanoid")
-- Pattern: update once now, then any time the health changes
human.HealthChanged:Connect(onHealthChanged)
onHealthChanged()
end
-- Connect our spawn listener; call it if already spawned
player.CharacterAdded:Connect(onCharacterAdded)
if player.Character then
onCharacterAdded(player.Character)
end
SizeConstraint
이 속성은 Size 자식이 부모의 크기와 관련하여 기반을 둔 GuiObject의 크기를 설정합니다.
이 속성은 부모 개체의 너비 또는 높이 크기 조정을 위한 GUI 개체를 만드는 데 유용합니다. 효과적으로 개체의 모양 비율을 유지하면서 부모 개체의 높이를 조정하는 경우와 같이 말이 됩니다.
Transparency
Class.GuiObject.BackgroundTransparency|BackgroundTransparency 및 TextTransparency의 혼합 속성.
Visible
이 속성은 GuiObject 및 그 후손이 렌더링됩니다.
Class.GuiObject 의 개별 구성 요소는 투명도 속성을 통해 개별적으로 제어될 수 있습니다. GuiObject.BackgroundTransparency, TextLabel.TextTransparency 및 1>Class.ImageLabel.ImageTransparency1> 을 통해 더 자세한 정보를 참조하세요.
이 속성이 false인 경우 GuiObject , UIListLayout 및 1> Class.UITableLayout1>와 같은 레이아웃 구조에서 요소가 무시됩니다. 즉, 요소가 다른 요소에 대해 사용자 공간을 차
코드 샘플
local gui = script.Parent
local window = gui:WaitForChild("Window")
local toggleButton = gui:WaitForChild("ToggleWindow")
local closeButton = window:WaitForChild("Close")
local function toggleWindowVisbility()
-- Flip a boolean using the `not` keyword
window.Visible = not window.Visible
end
toggleButton.Activated:Connect(toggleWindowVisbility)
closeButton.Activated:Connect(toggleWindowVisbility)
ZIndex
이 속성은 GuiObject 가 다른 요소와 얼마나 순위를 매기는지 결정합니다.
기본적으로, GuiObjects 는 다음과 같은 우선 순위 순서로 렌더링됩니다, 여기에서 값이 가장 높은 ZIndex 값은 가장 낮은 값을 가진 사람
미래에 두 개의 기존 요소 사이에 요소를 추가해야 할지 확실하지 않은 경우 다음과 같은 모범 사례를 사용하여 100 ( 0 , 100 , 1> 2001> ,등을 포
또한 LayoutOrder 를 참조하십시오. 이는 레이아웃 구조와 함께 사용되는 Class.GuiObject 의 정렬 순서를 제어합니다. 이 구조는 레이아웃 구조와 함께 사용되는 GuiObject 또는 2>Class.UIGridLayout</
메서드
TweenPosition
지정된 시간에 지정된 새 위치로 간편하게 GUI를 이동합니다. UDim2 및 Enum.EasingDirection 를 사용하여 지정된 위치에 간편하게 이동합니다.
이 함수는 트위닝이 플레이할지 여부를 반환합니다. 다른 트위닝이 GuiObject에 대해 작동하고 대체 매개 변수가 참이 아닌 경우 트위닝을 플레이하지 않습니다.
또한 참조하십시오.
- GuiObject:TweenSize() , 십대는 GUI의 크기
- GuiObject:TweenSizeAndPosition() , 트위ens a GUI의 크기 및 위치를 동기적으로 동기화합니다.
매개 변수
GUI가 이동해야 하는 곳.
GUI를 끝 위치로 쉽게 조정하는 방향입니다.
GUI를 끝 위치로 쉽게 조정하는 스타일.
트위넌 완료에 걸리는 시간(초).
트위넌이 진행 중인 트위넌을 덮어씁니다.
트윈이 완료되면 호출하는 콜백 함수입니다.
반환
트위닝이 플레이할지 여부.
코드 샘플
local START_POSITION = UDim2.new(0, 0, 0, 0)
local GOAL_POSITION = UDim2.new(1, 0, 1, 0)
local guiObject = script.Parent
local function callback(state)
if state == Enum.TweenStatus.Completed then
print("The tween completed uninterrupted")
elseif state == Enum.TweenStatus.Canceled then
print("Another tween cancelled this one")
end
end
-- Initialize the GuiObject position, then start the tween:
guiObject.Position = START_POSITION
local willPlay = guiObject:TweenPosition(
GOAL_POSITION, -- Final position the tween should reach
Enum.EasingDirection.In, -- Direction of the easing
Enum.EasingStyle.Sine, -- Kind of easing to apply
2, -- Duration of the tween in seconds
true, -- Whether in-progress tweens are interrupted
callback -- Function to be callled when on completion/cancelation
)
if willPlay then
print("The tween will play")
else
print("The tween will not play")
end
TweenSize
지정된 시간에 지정된 새 UDim2 및 Enum.EasingDirection 를 사용하여 새로운 Enum.EasingStyle를 원활하게 조정합니다.
이 함수는 트위닝이 플레이여부를 반환합니다. 일반적으로 이것은 항상 true를 반환하지만, 다른 트위닝이 활성화되어 있고 재생을 비활성으로 설정하면 false를 반환합니다.
또한 참조하십시오.
- GuiObject:TweenPosition() , 십대는 GUI의 위치
- GuiObject:TweenSizeAndPosition() , 트위ens a GUI의 크기 및 위치를 동기적으로 동기화합니다.
매개 변수
GUI 크기를 조정해야 합니다.
GUI를 끝 크기로 쉽게 조정하는 방향입니다.
GUI를 끝 크기로 쉽게 조정하는 스타일.
트위넌 완료에 걸리는 시간(초).
트위넌이 진행 중인 트위넌을 덮어씁니다.
트윈이 완료되면 호출하는 콜백 함수입니다.
반환
트위닝이 플레이할지 여부.
코드 샘플
local guiObject = script.Parent
local function callback(didComplete)
if didComplete then
print("The tween completed successfully")
else
print("The tween was cancelled")
end
end
local willTween = guiObject:TweenSize(
UDim2.new(0.5, 0, 0.5, 0), -- endSize (required)
Enum.EasingDirection.In, -- easingDirection (default Out)
Enum.EasingStyle.Sine, -- easingStyle (default Quad)
2, -- time (default: 1)
true, -- should this tween override ones in-progress? (default: false)
callback -- a function to call when the tween completes (default: nil)
)
if willTween then
print("The GuiObject will tween")
else
print("The GuiObject will not tween")
end
TweenSizeAndPosition
Smoothly resizes and moves a GUI to a new UDim2 size and position in the specified time using the specified Enum.EasingDirection and Enum.EasingStyle .
이 함수는 트위닝이 플레이여부를 반환합니다. 일반적으로 이것은 항상 true를 반환하지만, 다른 트위닝이 활성화되어 있고 재생을 비활성으로 설정하면 false를 반환합니다.
또한 참조하십시오.
- GuiObject:TweenSize() , 십대는 GUI의 크기
- GuiObject:TweenPosition() , 십대는 GUI의 위치
매개 변수
GUI 크기를 조정해야 합니다.
GUI가 이동해야 하는 곳.
GUI를 끝 크기로 및 끝 위치로 쉽게 조정하는 방향.
endSize 및 endPosition으로 GUI를 쉽게 조정하는 스타일.
트위넌 완료에 걸리는 시간(초).
트위넌이 진행 중인 트위넌을 덮어씁니다.
트윈이 완료되면 호출하는 콜백 함수입니다.
반환
트위닝이 플레이할지 여부.
코드 샘플
local frame = script.Parent.Frame
frame:TweenSizeAndPosition(UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0))
이벤트
InputBegan
이 이벤트는 사용자가 인간-컴퓨터 인터페이스 장치(마우스 버튼 다운, 터치 시작, 키보드 버튼 다운 등)를 통해 <Class.GuiObject>와 상호 작용하기 시작하면 발생합니다.
Class.UserInputService에는 특정 UI 요소에 제한되지 않은 이벤트가 있습니다: UserInputService.InputBegan.
이 이벤트는 게임 상태에 관계없이 항상 발생합니다.
또한 참조하십시오.
매개 변수
Class.InputObject, 사용자 입력의 유용한 데이터를 포함하여 사용자 입력의 쿼리에 유용한 데이터를 포함합니다. type of input , state of input 및 1>Class.InputObj.Position|screen coordinates1> .
코드 샘플
-- In order to use the InputBegan event, you must specify the GuiObject
local gui = script.Parent
-- A sample function providing multiple usage cases for various types of user input
local function inputBegan(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
end
gui.InputBegan:Connect(inputBegan)
InputChanged
이 이벤트는 사용자가 인간-컴퓨터 인터페이스 장치(마우스 버튼 다운, 터치 시작, 키보드 버튼 다운 등)를 통해 상호 작용하는 방식을 변경할 때 발생합니다.
Class.UserInputService에는 특정 UI 요소에 제한되지 않은 이벤트가 있습니다. UserInputService.InputChanged .
이 이벤트는 게임 상태에 관계없이 항상 발생합니다.
또한 참조하십시오.
매개 변수
Class.InputObject, 사용자 입력의 유용한 데이터를 포함하여 사용자 입력의 쿼리에 유용한 데이터를 포함합니다. type of input , state of input 및 1>Class.InputObj.Position|screen coordinates1> .
코드 샘플
local UserInputService = game:GetService("UserInputService")
local gui = script.Parent
local function printMovement(input)
print("Position:", input.Position)
print("Movement Delta:", input.Delta)
end
local function inputChanged(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
print("The mouse has been moved!")
printMovement(input)
elseif input.UserInputType == Enum.UserInputType.MouseWheel then
print("The mouse wheel has been scrolled!")
print("Wheel Movement:", input.Position.Z)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
if input.KeyCode == Enum.KeyCode.Thumbstick1 then
print("The left thumbstick has been moved!")
printMovement(input)
elseif input.KeyCode == Enum.KeyCode.Thumbstick2 then
print("The right thumbstick has been moved!")
printMovement(input)
elseif input.KeyCode == Enum.KeyCode.ButtonL2 then
print("The pressure being applied to the left trigger has changed!")
print("Pressure:", input.Position.Z)
elseif input.KeyCode == Enum.KeyCode.ButtonR2 then
print("The pressure being applied to the right trigger has changed!")
print("Pressure:", input.Position.Z)
end
elseif input.UserInputType == Enum.UserInputType.Touch then
print("The user's finger is moving on the screen!")
printMovement(input)
elseif input.UserInputType == Enum.UserInputType.Gyro then
local _rotInput, rotCFrame = UserInputService:GetDeviceRotation()
local rotX, rotY, rotZ = rotCFrame:toEulerAnglesXYZ()
local rot = Vector3.new(math.deg(rotX), math.deg(rotY), math.deg(rotZ))
print("The rotation of the user's mobile device has been changed!")
print("Position", rotCFrame.p)
print("Rotation:", rot)
elseif input.UserInputType == Enum.UserInputType.Accelerometer then
print("The acceleration of the user's mobile device has been changed!")
printMovement(input)
end
end
gui.InputChanged:Connect(inputChanged)
InputEnded
사용자가 인간-컴퓨터 인터페이스 장치(마우스 버튼 다운, 터치 시작, 키보드 버튼 다운 등)를 통해 상호 작용을 중지할 때 입력 완료 이벤트가 발생합니다.The InputEnded event fires when a user stops interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc).
Class.UserInputService에는 특정 UI 요소에 제한되지 않은 이벤트가 있습니다. UserInputService.InputEnded .
이 이벤트는 게임 상태에 관계없이 항상 발생합니다.
또한 참조하십시오.
매개 변수
Class.InputObject, 사용자 입력의 유용한 데이터를 포함하여 사용자 입력의 쿼리에 유용한 데이터를 포함합니다. type of input , state of input 및 1>Class.InputObj.Position|screen coordinates1> .
코드 샘플
-- In order to use the InputChanged event, you must specify a GuiObject
local gui = script.Parent
-- A sample function providing multiple usage cases for various types of user input
local function inputEnded(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key has been released! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button has been released on a gamepad! Button:", input.KeyCode)
end
end
gui.InputEnded:Connect(inputEnded)
MouseEnter
MouseEnter 이벤트는 사용자가 마우스를 GUI 요소에 이동할 때 발생합니다.
이 이벤트의 x 및 y 인수가 사기성 방식으로 사용자의 마우스가 어디에 있는지 결정하는 데 사용된 것으로 간주되지 마십시오. 이 좌표는 마우스가 단위를 입력하는 위치를 나타내기 때문에 마우스가
이 이벤트는 다른 요소 아래에 있는 GUI 요소가 렌더링할 때에도 발생합니다.
사용자의 마우스가 GUI 요소를 떠날 때 추적하려면 GuiObject.MouseLeave 이벤트를 사용할 수 있습니다.
또한 참조하십시오.
매개 변수
마우스왼쪽 상단 모서리에 대해 x축 코ор디네이트, 상단 왼쪽 모서리에 대해 상대적인 코르디네이트입니다.
화면의 왼쪽 상단 모서리에 대해 마우스의 y 화면 좌표입니다.
코드 샘플
local guiObject = script.Parent
guiObject.MouseEnter:Connect(function(x, y)
print("The user's mouse cursor has entered the GuiObject at position", x, ",", y)
end)
MouseLeave
마우스 떠나기 이벤트는 사용자가 마우스를 GUI 요소 밖으로 이동할 때 발생합니다.
이 이벤트의 x 및 y 인수가 사기성 방식으로 사용자의 마우스 위치를 결정하는 데 사용된 것으로 알려져 있습니다. 이 좌표는 마우스가 GUI를 떠나는 위치를 결정하는 데 사용되는 것과 같은 경
이 이벤트는 다른 요소 아래에 있는 GUI 요소가 렌더링할 때에도 발생합니다.
또한 참조하십시오.
매개 변수
마우스왼쪽 상단 모서리에 대해 x축 코ор디네이트, 상단 왼쪽 모서리에 대해 상대적인 코르디네이트입니다.
화면의 왼쪽 상단 모서리에 대해 마우스의 y 화면 좌표입니다.
MouseMoved
사용자가 GUI 요소 내에 있는 동안 마우스를 이동하면 발생합니다. 이 기능은 Mouse.Move 와 유사합니다.
참고, 이 이벤트는 마우스 위치가 업데이트되면 발생하므로 이동 중에 반복해서 발생합니다.
x 및 y 인수는 사용자 마우스의 픽셀 기준 화면 좌표를 나타냅니다. 이 인수는 마우스의 이전 위치를 추적하는 경우 전역 변수에 대한 마우스의 위치를 결정하는 데 유용할 수 있습니다.
아래 코드는 사용자의 마우스 대비 GUI 요소의 마이크로 오프셋을 결정하는 방법을 보여줍니다.The code below demonstrates how to determine the Vector2 offset of the user's mouse relative to a GUI element:
local CustomScrollingFrame = script.Parent
local SubFrame = CustomScrollingFrame:FindFirstChild("SubFrame")
local mouse = game.Players.LocalPlayer:GetMouse()
function getPosition(X, Y)
local gui_X = CustomScrollingFrame.AbsolutePosition.X
local gui_Y = CustomScrollingFrame.AbsolutePosition.Y
local pos = Vector2.new(math.abs(X - gui_X), math.abs(Y - gui_Y - 36))
print(pos)
end
CustomScrollingFrame.MouseMoved:Connect(getPosition)
사용자의 마우스가 GUI 요소에 들어가거나 나가면 이 이벤트가 정확하게 발생하지 않습니다. 따라서 x 및 y 인수가 구석의 좌표와 일치하지 않을 수 있습니다.
또한 참조하십시오.
매개 변수
마우스왼쪽 상단 모서리에 대해 x축 코ор디네이트, 상단 왼쪽 모서리에 대해 상대적인 코르디네이트입니다.
화면의 왼쪽 상단 모서리에 대해 마우스의 y 화면 좌표입니다.
MouseWheelBackward
사용자가 마우스 휠을 마우스 요소 위에 올릴 때 휠백 이벤트가 발생합니다. 이 이벤트는 마우스 휠을 마우스 요소 위에 올릴 때 발생합니다. 이 이벤트는 마우스 휠을 마우스 요소 위에 올릴 때 발생합니다. 이 이벤트는 마우스 휠을 마우스 요소 위
이 이벤트는 바퀴의 뒤로 이동하는 단순한 표시자 역할을 합니다. 이는 x 및 y 마우스 좌표 인수가 이 이벤트의 결과로 변경되지 않음을 의미합니다. 이 좌표는 마우스가 이동할 때만 변경되며, 이 이벤트는 GuiObject.MouseMoved 이벤트를 통해 추적할 수 있는 트랙에 대한 변
또한 참조하십시오.
매개 변수
마우스왼쪽 상단 모서리에 대해 x축 코ор디네이트, 상단 왼쪽 모서리에 대해 상대적인 코르디네이트입니다.
화면의 왼쪽 상단 모서리에 대해 마우스의 y 화면 좌표입니다.
MouseWheelForward
사용자가 마우스 휠을 마우스 위에 있는 GUI 요소 위로 스크롤하면 휠 포워드 이벤트가 발생합니다. 이 이벤트는 마우스 휠이 있는 경우에도 마찬가지입니다. Mouse.WheelForward, 마우스 휠이 있는 경우에도 마찬가지입니다.
이 이벤트는 바퀴의 앞쪽 이동을 나타내는 단순한 표시자로 발생합니다. 이를 통해 x 및 y 마우스 좌표 인수가 이 이벤트의 결과로 변경되지 않습니다. 이 좌표는 마우스가 이동할 때만 변경되며, 이는 GuiObject.MouseMoved 이벤트를 통해 추적할 수 있는 마우스 이동만 해당됩니다.
또한 참조하십시오.
매개 변수
SelectionGained
이 이벤트는 Gamepad 선택기가 GuiObject 에 집중하기 시작할 때 발생합니다.
게임 패드에서 확인하려면 게이UI 요소에 집중하지 않고 GuiObject.SelectionLost 이벤트를 사용할 수 있습니다.
GUI가 선택 포커스를 얻을 때, SelectedObject 속성의 값도 선택 포커스에 변경됩니다. 어떤 GUI가 선택을 얻었는지 결정하려면 이 속성의 값을 확인하십시오.
코드 샘플
local guiObject = script.Parent
local function selectionGained()
print("The user has selected this button with a gamepad.")
end
guiObject.SelectionGained:Connect(selectionGained)
SelectionLost
이 이벤트는 Gamepad 선택기가 GUI 에 집중하지 않을 때 발생합니다.
게임 패드에서 확인하려면 시작을 GuiObject.SelectionGained 이벤트로 선택하십시오.
Class.GuiService.SelectionObject|SelectionObject 속성의 값이 선택 포커스를 잃게 되면 선택 포커스를 얻은 GUI 요소의 값이 일반적으로 0으로 변경되거나 GUI 요소에 선택 포커스를 얻는 경우 일반적으로 0으로 변경됩니다. 선택 포커스를 얻은 경우 또는 선택 포커스를 얻지 않은 경우 이 속
코드 샘플
local guiObject = script.Parent
local function selectionLost()
print("The user no longer has this selected with their gamepad.")
end
guiObject.SelectionLost:Connect(selectionLost)
TouchLongPress
TouchLongPress 이벤트는 플레이어가 터치 기기사용하여 손가락을 화면에 올리는 순간부터 발생합니다.
이 이벤트는 단지 하나의 손가락을 필요로 하기 때문에 Studio에서 에뮬레이터와 마우스를 사용하여 시뮬레이션할 수 있습니다.
매개 변수
Enum.UserInputState 는 제스처의 상태를 설명합니다.
- 시작 시 화살표 표시(브리프 지연 후)
- 플레이어가 손가락을 내려 앉히면 화재를 변경합니다.
- 손가락을 내놓을 때 끝에 한 번 더 화재를 일으킵니다.
코드 샘플
local frame = script.Parent
frame.Active = true
local dragging = false
local basePosition
local startTouchPosition
local borderColor3
local backgroundColor3
local function onTouchLongPress(touchPositions, state)
if state == Enum.UserInputState.Begin and not dragging then
-- Start a drag
dragging = true
basePosition = frame.Position
startTouchPosition = touchPositions[1]
-- Color the frame to indicate the drag is happening
borderColor3 = frame.BorderColor3
backgroundColor3 = frame.BackgroundColor3
frame.BorderColor3 = Color3.new(1, 1, 1) -- White
frame.BackgroundColor3 = Color3.new(0, 0, 1) -- Blue
elseif state == Enum.UserInputState.Change then
local touchPosition = touchPositions[1]
local deltaPosition = UDim2.new(
0,
touchPosition.X - startTouchPosition.X,
0,
touchPosition.Y - startTouchPosition.Y
)
frame.Position = basePosition + deltaPosition
elseif state == Enum.UserInputState.End and dragging then
-- Stop the drag
dragging = false
frame.BorderColor3 = borderColor3
frame.BackgroundColor3 = backgroundColor3
end
end
frame.TouchLongPress:Connect(onTouchLongPress)
TouchPan
플레이어가 터치 기기사용하여 UI 요소에 손가락을 이동할 때 TouchPan 이벤트가 발생합니다. GuiObject.TouchSwipe 가 발생하기 전에 잠깐 전에 발생하지 않으며 GuiObject.TouchTap 와 함께 사용하면 더
이 이벤트는 손가 움직임에 관련된 썸네트 화면 위치를 설명하는 Vector2 테이블로 발생합니다. 또한, 이 이벤트는 여러 번 발생합니다: Enum.UserInputState.Begin 후 잠깐 지연된
이 이벤트는 에뮬레이터와 마우스를 사용하여 Studio에서 시뮬레이션할 수 없습니다. 실제 터치 기능이 활성화된 장치가 있어야 합니다.
매개 변수
코드 샘플
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local basePosition
local function onTouchPan(_touchPositions, totalTranslation, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
basePosition = innerFrame.Position
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
innerFrame.Position = basePosition + UDim2.new(0, totalTranslation.X, 0, totalTranslation.Y)
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchPan:Connect(onTouchPan)
TouchPinch
TouchPinch 이벤트는 플레이어가 두 개의 손가락을 사용하여 UI 기기핀치 또는 끌기 동작을 수행하는 경우 발생합니다.TouchPinch 이벤트는 두 개 이
이 이벤트는 손가락이 이 제스처에 관련된 상대 화면 위치를 설명하는 Vector2 테이블로 시작합니다. 또한, 이 이벤트는 잠깐 지연 후에
이 이벤트는 적어도 두 개의 손가락이 필요하기 때문에 Studio에서 에뮬레이터와 마우스를 사용하여 시뮬레이션할 수 없습니다. 실제 터치 기기필요해야 합니다.
매개 변수
Datatype.Vector2 개체로 구성된 Lua 배열, 각각 핀치 제스처에 참여하는 모든 손가 위치를 나타냅니다.
핀치 제스처의 시작 부분에서 차이를 나타내는 플롯.
핀치 스트레스가 얼마나 빠르게 발생하는지 나타내는 부동 소수점.
제스처의 Enum.UserInputState를 나타냅니다.
코드 샘플
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local uiScale = Instance.new("UIScale")
uiScale.Parent = innerFrame
local baseScale
local function onTouchPinch(_touchPositions, scale, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
baseScale = uiScale.Scale
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
uiScale.Scale = baseScale * scale -- Notice the multiplication here
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchPinch:Connect(onTouchPinch)
TouchRotate
플레이어가 두 손가락을 사용하여 피치하거나 끌기 동작을 UI 기기수행할 때 TouchRotate 이벤트가 발생합니다. 회전은 두 손가락 사이의 각도가 변경될 때 발생합니다. 이 이벤트는 GuiObject.TouchPan 와 함께
이 이벤트는 손가 움직임에 관련된 썸네트 화면 위치를 설명하는 Vector2 테이블로 발생합니다. 또한, 이 이벤트는 여러 번 발생합니다: Enum.UserInputState.Begin 후 잠깐 지연된
이 이벤트는 적어도 두 개의 손가락이 필요하기 때문에 Studio에서 에뮬레이터와 마우스를 사용하여 시뮬레이션할 수 없습니다. 실제 터치 기기필요해야 합니다.
매개 변수
코드 샘플
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local baseRotation = innerFrame.Rotation
local function onTouchRotate(_touchPositions, rotation, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
baseRotation = innerFrame.Rotation
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
innerFrame.Rotation = baseRotation + rotation
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchRotate:Connect(onTouchRotate)
TouchSwipe
터치 스와이프 이벤트는 터치 기기사용하여 UI 요소에 대한 스와이프 절차를 수행할 때 발생합니다. 스와이프 절차의 방향(위, 아래, 왼쪽 또는 오른쪽)과 관련된 터치 포인트 수를 변경합니다. 터치 스와이프는 일반적으로 모바일 UIs의 탭을 변경하는 데 사용됩니다.
이 이벤트는 단지 하나의 손가락을 필요로 하므로 Studio에서 에뮬레이터와 마우스를 사용하여 시뮬레이션할 수 있습니다.
매개 변수
Direction 스와이프 동작의 방향을 나타내는 SwipeDirection 입니다. (위, 아래, 왼쪽 또는 오른쪽).
이 동작에 사용된 터치 포인트 수(일반적으로 1).
코드 샘플
local frame = script.Parent
frame.Active = true
-- How far the frame should bounce on a successful swipe
local BOUNCE_DISTANCE = 50
-- Current state of the frame
local basePosition = frame.Position
local hue = 0
local saturation = 128
local function updateColor()
frame.BackgroundColor3 = Color3.fromHSV(hue / 256, saturation / 256, 1)
end
local function onTouchSwipe(swipeDir, _touchCount)
-- Change the BackgroundColor3 based on the swipe direction
local deltaPos
if swipeDir == Enum.SwipeDirection.Right then
deltaPos = UDim2.new(0, BOUNCE_DISTANCE, 0, 0)
hue = (hue + 16) % 255
elseif swipeDir == Enum.SwipeDirection.Left then
deltaPos = UDim2.new(0, -BOUNCE_DISTANCE, 0, 0)
hue = (hue - 16) % 255
elseif swipeDir == Enum.SwipeDirection.Up then
deltaPos = UDim2.new(0, 0, 0, -BOUNCE_DISTANCE)
saturation = (saturation + 16) % 255
elseif swipeDir == Enum.SwipeDirection.Down then
deltaPos = UDim2.new(0, 0, 0, BOUNCE_DISTANCE)
saturation = (saturation - 16) % 255
else
deltaPos = UDim2.new()
end
-- Update the color and bounce the frame a little
updateColor()
frame.Position = basePosition + deltaPos
frame:TweenPosition(basePosition, Enum.EasingDirection.Out, Enum.EasingStyle.Bounce, 0.7, true)
end
frame.TouchSwipe:Connect(onTouchSwipe)
updateColor()
TouchTap
터치 이벤트는 플레이어가 터치 기기사용하여 UI 요소에 대한 탭 동작을 수행할 때 발생합니다. 탭은 이동 관련 작업이 없는 간단한 하나의 빠른 하나의
이 이벤트는 단지 하나의 손가락을 필요로 하므로 Studio에서 에뮬레이터와 마우스를 사용하여 시뮬레이션할 수 있습니다.
매개 변수
코드 샘플
local frame = script.Parent
frame.Active = true
local function onTouchTap()
-- Toggle background transparency
if frame.BackgroundTransparency > 0 then
frame.BackgroundTransparency = 0
else
frame.BackgroundTransparency = 0.75
end
end
frame.TouchTap:Connect(onTouchTap)