學習
引擎類別
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
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, "此腳本必須作為插件執行!")\n\n -- 這個點之後的代碼將僅在腳本作為插件執行時執行\n\n\n -- 載入模組並傳遞插件參考\n\n local pluginModule = require(script.Parent.PluginModule)\n\n pluginModule:Initialize(plugin)\n\n\n -- 驗證插件參考是否已初始化\n\n 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("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(
"HelloWorldAction",
"Hello World",
"輸出 'Hello world!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "測試行動"
local function actionTriggered()
print("Hello world!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu
外掛程式安全性
Plugin:CreatePluginMenu(
id:string, title:string, icon:string
參數
title:string
icon:string
範例程式碼
創建一個 PluginMenu 和 PluginMenuAction
-- 這段程式碼可以複製到命令列,但只能執行一次
local pluginMenu = plugin:CreatePluginMenu(math.random(), "測試菜單")
pluginMenu.Name = "測試菜單"
pluginMenu:AddNewAction("動作A", "A", "rbxasset://textures/loading/robloxTiltRed.png")
pluginMenu:AddNewAction("動作B", "B", "rbxasset://textures/loading/robloxTilt.png")
local subMenu = plugin:CreatePluginMenu(math.random(), "C", "rbxasset://textures/explosion.png")
subMenu.Name = "子菜單"
subMenu:AddNewAction("動作D", "D", "rbxasset://textures/whiteCircle.png")
subMenu:AddNewAction("動作E", "E", "rbxasset://textures/icon_ROBUX.png")
pluginMenu:AddMenu(subMenu)
pluginMenu:AddSeparator()
pluginMenu:AddNewAction("動作F", "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("從 PluginMouse 按下了按鈕 1")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool
外掛程式安全性
Plugin:GetSelectedRibbonTool():Enum.RibbonTool
範例程式碼
插件:獲取所選的 Ribbon 工具
plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- 等待下一幀
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("所選的 RibbonTool 是", 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
返回
()
範例程式碼
插件:GetSetting 和 插件: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 插件運行")
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 = "一些拖曳來源",
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 是我們在美國及其他國家地區的部分註冊與未註冊商標。