PluginGui

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음
복제되지 않음

플러그인 가이드는 다양한 Roblox Studio 위젯에서 GuiObjects 를 표시하는 GUI를 위한 개체 클래스입니다. 현재 플러그인 가이드 유형은 DockWidgetPluginGui 이지만, 나중에는 더 많이 제공할 수 있습니다!

요약

속성

  • 병렬 읽기

    Class.PluginGui 의 콘텐츠 위에 표시되는 타이틀.

속성LayerCollector에서 상속되었습니다속성GuiBase2d에서 상속되었습니다

메서드

이벤트

  • 플러그인 보안

    Class.Plugin:StartDrag()를 시작하는 드래그 작업 동안 플러그인 가이드 위에 마우스를 릴리스하면 발동됩니다.

  • 플러그인 보안

    Class.Plugin:StartDrag() 동안 마우스가 플러그인 가이드에 들어가면 플러그인 가이드에서 플러그인을 실행하도록 합니다.

  • 플러그인 보안

    Class.Plugin:StartDrag() 를 시작하는 드래그 작업 동안 사용자의 마우스가 플러그인 가이드를 떠나면 화면이 잠깐 응답합니다.

  • 플러그인 보안

    Class.Plugin:StartDrag() 를 시작하는 드래그 작업 동안 사용자의 마우스가 플러그인 가이드 내에서 이동하면 화면이 켜집니다.

  • 사용자가 PluginGui 창을 더 이상 상호 작용하지 않을 때 화재됩니다.

  • 플러그인 보안

    사용자가 PluginGui 창에 상호 작용을 시작할 때 화재됩니다.

이벤트GuiBase2d에서 상속되었습니다

속성

Title

병렬 읽기

콘텐츠 위에 표시되는 타이틀. 기본적으로 문자열을 비워야 합니다.

메서드

BindToClose

void

이 함수는 기본 동작을 재정의하기 위해 PluginGui 닫기 버튼에 함수를 바인딩합니다.

기본적으로 사용자가 PluginGui의 오른쪽 상단 모서리에 있는 'x' 버튼을 클릭하면 Enabled 속성이 false로 설정되어 창을 닫습니다. 사용자 지정 함수를 사용하여 바인딩을 설정하면

이 함수로 기본 닫기 동작이 재정의되면 PluginGui 를 수동으로 닫기 위해 PluginGui.Enabled 를 설정하여 Class.PluginGui 를 클로스 하 여야 합니다. 예를 들어, 다음 스냅샷에서 사용자는 확인 버튼을 클릭 하여


local closing = false
pluginGui:BindToClose(function()
-- 버튼을 만들지 않았는지 확인하십시오
if closing then
return
end
closing = true
-- 생성 확인 버튼
local confirmButton = Instance.new("TextButton")
confirmButton.AnchorPoint = Vector2.new(0.5, 0.5)
confirmButton.Size = UDim2.new(0.5, 0, 0.5, 0)
confirmButton.Position = UDim2.new(0.5, 0, 0.5, 0)
confirmButton.BackgroundColor3 = Color3.new(1, 0, 0)
confirmButton.Text = "Close?"
confirmButton.Parent = pluginGui
-- 클릭을 들으세요
confirmButton.Activated:Connect(function()
-- gui를 닫습니다.
pluginGui.Enabled = false
-- 확인 버튼 제거
confirmButton:Destroy()
end)
end)

BindToClose에 아무 인수도 지정하지 않고 'unbind'를 호출하고 위에 설명된 대로 기본 동작으로 되돌릴 수 있습니다. 예를 들어:


pluginGui:BindToClose()

또한 참조하십시오.

매개 변수

function: function

닫기 버튼에 바인딩할 함수를 지정합니다. 지정된 함수가 없으면 이전에 지정된 함수가 바인딩 해제됩니다.

기본값: "nil"

반환

void

GetRelativeMousePosition

플러그인 보안

GetRelativeMousePosition는 플러그인 가이드의 왼쪽 상단 모서리에 마우스의 위치를 반환합니다. 반환된 값은 플러그인 가이드에서 마우스 입력이 시작된 경우에만 변경되며 현재 창을 마우스가 포함되어 있는 경우에만 마우스가 포함되어 있는 경우에만 마우스가 포함되어 있는 경우에만 마우스가 포함되어 있는 경우에만 마우스가


반환

플러그인 가이드와 관련된 마우스 위치의 화면.

코드 샘플

PluginGui:GetRelativeMousePosition

local RunService = game:GetService("RunService")
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float,
true,
false, -- Enabled state, override
200,
300, -- Size
150,
150 -- Minimum size
)
local testWidget = plugin:CreateDockWidgetPluginGui("TestWidget", widgetInfo)
function update()
local v2 = testWidget:GetRelativeMousePosition()
testWidget.Title = ("(%d, %d)"):format(v2.x, v2.y)
end
RunService.Stepped:Connect(update)
update()

이벤트

PluginDragDropped

플러그인 보안

플러그인 드래그 드롭 은 사용자가 PluginGui 를 드래그하기 시작한 동안 Plugin:StartDrag() 의 마우스를 드래그하면 실행됩니다.

또한 참조하십시오.

매개 변수

dragData: Dictionary

코드 샘플

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)

PluginDragEntered

플러그인 보안

플러그인 드래그 입력 완료 는 사용자의 마우스가 PluginGui 를 드래그하는 동안 Class.Plugin:StartDrag() 에 의해 시작된 드래그 작업을 시작하면 발생합니다.

이 이벤트는 플러그인 가이드에서 드래그 작업을 드롭할 수 있는 "여기에 드롭" UI를 표시하는 데 유용합니다. 이 같은 UI는 PluginDragLeft 또는 PluginDragDropped 가 발생할 때 숨겨져야 합니다.

또한 참조하십시오.

매개 변수

dragData: Dictionary

원래 데이터를 Plugin:StartDrag()에 복사합니다.


코드 샘플

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)

PluginDragLeft

플러그인 보안

PluginDragLeft 는 사용자의 마우스가 PluginGui 를 떠나 Plugin:StartDrag() 동안 드래그 작업을 시작했을 때 발생합니다.

이 이벤트 및 PluginDragDropped 은 플러그인 가이드에서 드래그 작업을 드롭할 수 있는 "여기에 드롭하기" UI를 숨기는 데 유용합니다. 이러한 UI는 PluginDragEntered 가 발생할 때 표시됩니다.

또한 참조하십시오.

매개 변수

dragData: Dictionary

원래 데이터를 Plugin:StartDrag()에 복사합니다.


코드 샘플

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)

PluginDragMoved

플러그인 보안

플러그인 이동 완료 는 사용자의 마우스가 드래그 작업을 시작한 PluginGui 내에서 이동하는 동안 발생합니다.

또한 참조하십시오.

매개 변수

dragData: Dictionary

WindowFocusReleased

플러그인 보안

WindowFocusRelease 는 사용자가 창을 플러그인 가이드에 클릭하지 않고 창과 상호 작용하는 즉시 발생하며, 일반적으로 창 밖의 무언가를 클릭하여 작동합니다. 이 기능은 플러그인 가이드에 있는 UserInputService.WindowFocusReleased 이벤트와 동일합니다.

사용자가 이 플러그인 가이드에 있는 동안 포커스가 다른 PluginGui 로 이동하면 이 이벤트는 다른 사람의 WindowFocused 이벤트 보다 먼저 발생합니다. 그러나 주 게임 창이 포커스에


코드 샘플

Detecting PluginGui Focus State

local info = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 200, 50, 1, 1)
local widget = plugin:CreateDockWidgetPluginGui("TestWidget", info)
local function onFocusReleased()
widget.Title = "I'm not in focus :("
end
local function onFocused()
widget.Title = "I'm in focus :D"
end
widget.WindowFocusReleased:Connect(onFocusReleased)
widget.WindowFocused:Connect(onFocused)

WindowFocused

플러그인 보안

WindowFocused 는 사용자가 플러그인 가이드 창과 상호 작용하는 즉시 발생하며, 일반적으로 클릭하여 발생합니다. 이 기능은 유사한 이름의 UserInputService.WindowFocused 이벤트와 마찬가지로 마우스 버튼과 관련된 모든 이벤트에서 작동합니다.

다른 PluginGui 가 포커스에 있고 사용자가 이 플러그인 가이드를 집중하면 이 이벤트는 다른 사람의 WindowFocusReleased 이벤트 후에 발생합니다. 그러나 메인 게임 창이 포커스에 있었다면 이


코드 샘플

Detecting PluginGui Focus State

local info = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 200, 50, 1, 1)
local widget = plugin:CreateDockWidgetPluginGui("TestWidget", info)
local function onFocusReleased()
widget.Title = "I'm not in focus :("
end
local function onFocused()
widget.Title = "I'm in focus :D"
end
widget.WindowFocusReleased:Connect(onFocusReleased)
widget.WindowFocused:Connect(onFocused)