배우기
엔진 클래스
Plugin
만들 수 없음

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


요약
메서드
Activate(exclusiveMouse: boolean):()
CreateDockWidgetPluginGui(pluginGuiId: string,dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo):DockWidgetPluginGui
사용되지 않음
CreatePluginAction(actionId: string,text: string,statusTip: string,iconName: string,allowBinding: boolean):PluginAction
GetSetting(key: string):Variant
GetStudioUserId():number
사용되지 않음
ImportFbxAnimation(rigModel: Instance,isR15: boolean):Instance
사용되지 않음
ImportFbxRig(isR15: boolean):Instance
사용되지 않음
Intersect(objects: Instances):Instance
Negate(objects: Instances):Instances
OpenScript(script: LuaSourceContainer,lineNumber: number):()
사용되지 않음
PromptSaveSelection(suggestedFileName: string):boolean
사용되지 않음
Separate(objects: Instances):Instances
SetSetting(key: string,value: Variant):()
StartDrag(dragData: Dictionary):()
Union(objects: Instances):Instance
상속된 멤버
코드 샘플
스크립트 - 플러그인 글로벌을 모듈 스크립트에 전달하기
assert(plugin, "이 스크립트는 플러그인으로 실행되어야 합니다!")
-- 이 지점을 넘어서 작성된 코드는 스크립트가 플러그인으로 실행될 때만 실행됩니다
-- 모듈을 로드하고 플러그인 참조를 전달합니다
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- 플러그인 참조가 초기화되었는지 확인합니다
pluginModule:CheckForPluginGlobal()
모듈 스크립트 - 플러그인 전역 받기 및 저장
local pluginModule = {}
local plugin -- 로컬 플러그인 참조
-- 플러그인 참조가 아직 설정되지 않은 경우 초기화
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("플러그인이 이미 초기화되었습니다")
end
end
-- 플러그인 참조가 설정되었는지 확인하고 적절한 정보를 출력
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("플러그인 참조가 설정되어 있습니다!")
else
warn("플러그인 참조가 없습니다!")
end
end
return pluginModule

API 참조
속성
CollisionEnabled
읽기 전용
복제되지 않음
병렬 읽기
Plugin.CollisionEnabled:boolean

DisableUIDragDetectorDrags
Roblox 스크립트 보안
병렬 읽기
Plugin.DisableUIDragDetectorDrags:boolean

GridSize
읽기 전용
복제되지 않음
병렬 읽기
Plugin.GridSize:number

IsDebuggable
Roblox 스크립트 보안
병렬 읽기
Plugin.IsDebuggable:boolean

메서드
Activate
플러그인 보안
Plugin:Activate(exclusiveMouse:boolean):()
매개 변수
exclusiveMouse:boolean
반환
()

CreateDockWidgetPluginGui
사용되지 않음

CreateDockWidgetPluginGuiAsync
생성
플러그인 보안
Plugin:CreateDockWidgetPluginGuiAsync(
pluginGuiId:string, dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
매개 변수
pluginGuiId:string
dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
코드 샘플
위젯 GUI 텍스트 버튼
-- 새로운 'DockWidgetPluginGuiInfo' 객체 생성
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- 위젯은 떠 있는 패널로 초기화됩니다
true, -- 위젯은 처음에 활성화됩니다
false, -- 이전 활성화 상태를 덮어쓰지 않습니다
200, -- 떠 있는 창의 기본 너비
300, -- 떠 있는 창의 기본 높이
150, -- 떠 있는 창의 최소 너비 (선택 사항)
150 -- 떠 있는 창의 최소 높이 (선택 사항)
)
-- 새로운 위젯 GUI 생성
local testWidget = plugin:CreateDockWidgetPluginGuiAsync("테스트 위젯", widgetInfo)
local testButton = Instance.new("TextButton")
testButton.BorderSizePixel = 0
testButton.TextSize = 20
testButton.TextColor3 = Color3.new(1, 0.2, 0.4)
testButton.AnchorPoint = Vector2.new(0.5, 0.5)
testButton.Size = UDim2.new(1, 0, 1, 0)
testButton.Position = UDim2.new(0.5, 0, 0.5, 0)
testButton.SizeConstraint = Enum.SizeConstraint.RelativeYY
testButton.Text = "클릭하세요"
testButton.Parent = testWidget

CreatePluginAction
플러그인 보안
Plugin:CreatePluginAction(
actionId:string, text:string, statusTip:string, iconName:string, allowBinding:boolean
매개 변수
actionId:string
text:string
statusTip:string
iconName:string
allowBinding:boolean
기본값: true
코드 샘플
플러그인 액션 만들기
local pluginAction = plugin:CreatePluginAction(
"HelloWorldAction",
"안녕하세요 세계",
"'Hello world!'를 출력합니다",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "테스트 액션"
local function actionTriggered()
print("안녕하세요 세계!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu
플러그인 보안
Plugin:CreatePluginMenu(
id:string, title:string, icon:string
매개 변수
title:string
icon:string
코드 샘플
플러그인 메뉴 및 플러그인 메뉴 액션 생성
-- 이 코드는 Command Bar에 붙여넣을 수 있지만 한 번만 가능합니다.
local pluginMenu = plugin:CreatePluginMenu(math.random(), "테스트 메뉴")
pluginMenu.Name = "테스트 메뉴"
pluginMenu:AddNewAction("ActionA", "A", "rbxasset://textures/loading/robloxTiltRed.png")
pluginMenu:AddNewAction("ActionB", "B", "rbxasset://textures/loading/robloxTilt.png")
local subMenu = plugin:CreatePluginMenu(math.random(), "C", "rbxasset://textures/explosion.png")
subMenu.Name = "서브 메뉴"
subMenu:AddNewAction("ActionD", "D", "rbxasset://textures/whiteCircle.png")
subMenu:AddNewAction("ActionE", "E", "rbxasset://textures/icon_ROBUX.png")
pluginMenu:AddMenu(subMenu)
pluginMenu:AddSeparator()
pluginMenu:AddNewAction("ActionF", "F", "rbxasset://textures/sparkle.png")
local toggle = Instance.new("BoolValue")
toggle.Name = "TogglePluginMenu"
toggle.Parent = workspace
local function onToggled()
if toggle.Value then
toggle.Value = false
local selectedAction = pluginMenu:ShowAsync()
if selectedAction then
print("선택된 작업:", selectedAction.Text, "작업 ID:", selectedAction.ActionId)
else
print("사용자가 작업을 선택하지 않았습니다!")
end
end
end
toggle.Changed:Connect(onToggled)

CreateToolbar
플러그인 보안
Plugin:CreateToolbar(name:string):PluginToolbar
매개 변수
name:string
코드 샘플
플러그인:도구 모음 생성
plugin:CreateToolbar("ExampleToolbar")

Deactivate
플러그인 보안
Plugin:Deactivate():()
반환
()

GetJoinMode
플러그인 보안
Plugin:GetJoinMode():Enum.JointCreationMode

GetMouse
플러그인 보안
Plugin:GetMouse():PluginMouse
코드 샘플
플러그인:마우스 가져오기
local mouse = plugin:GetMouse()
local function button1Down()
print("버튼 1이 PluginMouse에서 눌렸습니다")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool
플러그인 보안
Plugin:GetSelectedRibbonTool():Enum.RibbonTool
코드 샘플
플러그인:선택된리본도구가져오기
plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- 다음 프레임까지 기다립니다.
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("선택된 리본 도구는", selectedRibbonTool)

GetSetting
플러그인 보안
Plugin:GetSetting(key:string):Variant
매개 변수
key:string
반환
Variant
코드 샘플
플러그인:설정가져오기
local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("다시 오신 것을 환영합니다!")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("환영합니다! 이 플러그인을 설치해 주셔서 감사합니다!")
end

GetStudioUserId
사용되지 않음

ImportFbxAnimation
사용되지 않음

ImportFbxAnimationAsync
생성
플러그인 보안
Plugin:ImportFbxAnimationAsync(
rigModel:Instance, isR15:boolean
매개 변수
rigModel:Instance
isR15:boolean
기본값: true
반환

ImportFbxRig
사용되지 않음

ImportFbxRigAsync
생성
플러그인 보안
Plugin:ImportFbxRigAsync(isR15:boolean):Instance
매개 변수
isR15:boolean
기본값: true
반환

Intersect
플러그인 보안
Plugin:Intersect(objects:Instances):Instance
매개 변수
objects:Instances
반환

IsActivated
플러그인 보안
Plugin:IsActivated():boolean
반환

IsActivatedWithExclusiveMouse
플러그인 보안
Plugin:IsActivatedWithExclusiveMouse():boolean
반환

Negate
플러그인 보안
Plugin:Negate(objects:Instances):Instances
매개 변수
objects:Instances
반환
Instances

OpenScript
사용되지 않음

OpenWikiPage
플러그인 보안
Plugin:OpenWikiPage(url:string):()
매개 변수
url:string
반환
()
코드 샘플
플러그인:OpenWikiPage
plugin:OpenWikiPage("API:Class/BasePart")

PromptForExistingAssetId
생성
플러그인 보안
Plugin:PromptForExistingAssetId(assetType:string):number
매개 변수
assetType:string
반환

PromptForExistingAssetIdAsync
생성
플러그인 보안
Plugin:PromptForExistingAssetIdAsync(assetType:string):number
매개 변수
assetType:string
반환

PromptSaveSelection
사용되지 않음

PromptSaveSelectionAsync
생성
플러그인 보안
Plugin:PromptSaveSelectionAsync(suggestedFileName:string):boolean
매개 변수
suggestedFileName:string
반환

SaveSelectedToRoblox
플러그인 보안
Plugin:SaveSelectedToRoblox():()
반환
()

SelectRibbonTool
플러그인 보안
Plugin:SelectRibbonTool(
tool:Enum.RibbonTool, position:UDim2
):()
매개 변수
position:UDim2
반환
()

Separate
플러그인 보안
Plugin:Separate(objects:Instances):Instances
매개 변수
objects:Instances
반환
Instances

SetSetting
플러그인 보안
Plugin:SetSetting(
key:string, value:Variant
):()
매개 변수
key:string
value:Variant
반환
()
코드 샘플
Plugin:GetSetting 및 Plugin:SetSetting
local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("환영합니다!")
else
print("이 플러그인을 설치해 주셔서 감사합니다!")
plugin:SetSetting(RAN_BEFORE_KEY, true)
end

StartDrag
플러그인 보안
Plugin:StartDrag(dragData:Dictionary):()
매개 변수
dragData:Dictionary
반환
()
코드 샘플
플러그인 드래그 앤 드롭
assert(plugin, "이 스크립트는 스튜디오 플러그인으로 실행되어야 합니다")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGuiAsync("드래그 소스", widgetInfo)
dragSourceWidget.Title = "드래그 소스"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "안녕하세요, 플러그인 드래그"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "위의 텍스트를 수정한 후 여기서 드래그를 시작하세요"
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)
-- 이 위젯은 드롭을 수신합니다
local dragTargetWidget = plugin:CreateDockWidgetPluginGuiAsync("드롭 대상", widgetInfo)
dragTargetWidget.Title = "드롭 대상"
-- 이 TextLabel은 드롭된 내용을 표시합니다
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "여기에 드롭..."
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)

Union
플러그인 보안
Plugin:Union(objects:Instances):Instance
매개 변수
objects:Instances
반환

이벤트
Deactivation
플러그인 보안
Plugin.Deactivation():RBXScriptSignal

Unloading
플러그인 보안
Plugin.Unloading():RBXScriptSignal

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.