เรียนรู้
Engine Class
Plugin
ไม่สามารถสร้าง

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่


สรุป
วิธีการ
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
สมาชิกที่ได้รับทอด
ตัวอย่างโค้ด
สคริปต์ - ส่ง Global ของปลั๊กอินไปยัง ModuleScript
assert(plugin, "สคริปต์นี้ต้องทำงานเป็นปลั๊กอิน!")
-- โค้ดหลังจากจุดนี้จะทำงานเฉพาะเมื่อสคริปต์ถูกเรียกใช้เป็นปลั๊กอิน
-- โหลดโมดูลและส่งการอ้างอิงปลั๊กอิน
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- ตรวจสอบว่าการอ้างอิงปลั๊กอินถูกเริ่มต้นแล้วหรือไม่
pluginModule:CheckForPluginGlobal()
ModuleScript - รับและจัดเก็บ Global ของปลั๊กอิน
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("TestWidget", 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
ส่งค่ากลับ
ตัวอย่างโค้ด
การสร้าง PluginAction
local pluginAction = plugin:CreatePluginAction(
"สวัสดีWorldAction",
"สวัสดี ชาวโลก",
"พิมพ์ 'สวัสดีชาวโลก!'",
"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
ส่งค่ากลับ
ตัวอย่างโค้ด
การสร้าง PluginMenu และ PluginMenuAction
-- โค้ดนี้สามารถวางลงใน 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, "ด้วย ActionId:", 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
ส่งค่ากลับ
()
ตัวอย่างโค้ด
ปลั๊กอิน:เปิดหน้าวิกิ
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, "สคริปต์นี้ต้องรันเป็น Studio 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 = "สวัสดี, การลาก plugin"
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 เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ