Edukacja
Klasa silnika
Plugin
Brak możliwości tworzenia

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.


Podsumowanie
Metody
Activate(exclusiveMouse: boolean):()
CreateDockWidgetPluginGui(pluginGuiId: string,dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo):DockWidgetPluginGui
Przestarzałe
CreatePluginAction(actionId: string,text: string,statusTip: string,iconName: string,allowBinding: boolean):PluginAction
GetSetting(key: string):Variant
GetStudioUserId():number
Przestarzałe
ImportFbxAnimation(rigModel: Instance,isR15: boolean):Instance
Przestarzałe
ImportFbxRig(isR15: boolean):Instance
Przestarzałe
Intersect(objects: Instances):Instance
Negate(objects: Instances):Instances
OpenScript(script: LuaSourceContainer,lineNumber: number):()
Przestarzałe
PromptSaveSelection(suggestedFileName: string):boolean
Przestarzałe
Separate(objects: Instances):Instances
SetSetting(key: string,value: Variant):()
StartDrag(dragData: Dictionary):()
Union(objects: Instances):Instance
Członkowie odziedziczeni
Przykłady kodu
Skrypt - Przekaż globalny plugin do ModuleScript
assert(plugin, "Ten skrypt musi być uruchomiony jako plugin!")
-- Kod poza tym punktem zostanie wykonany tylko jeśli skrypt jest uruchomiony jako plugin
-- Załaduj moduł i przekaż odniesienie do pluginu
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- Zweryfikuj, czy odniesienie do pluginu zostało zainicjowane
pluginModule:CheckForPluginGlobal()
Moduł skryptu - Odbierz i przechowuj globalny plugin
local pluginModule = {}
local plugin -- Lokalna referencja do pluginu
-- Zainicjalizuj referencję do pluginu, jeśli nie jest już ustawiona
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("Plugin jest już zainicjalizowany")
end
end
-- Sprawdź, czy referencja do pluginu jest ustawiona i wypisz odpowiednie informacje
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("Referencja do pluginu jest ustawiona!")
else
warn("Brak referencji do pluginu!")
end
end
return pluginModule

Materiały referencyjne dotyczące interfejsów API
Właściwości
CollisionEnabled
Tylko do odczytu
Bez replikacji
Odczyt równoległy
Plugin.CollisionEnabled:boolean

DisableUIDragDetectorDrags
Zabezpieczenia skryptów Roblox
Odczyt równoległy
Plugin.DisableUIDragDetectorDrags:boolean

GridSize
Tylko do odczytu
Bez replikacji
Odczyt równoległy
Plugin.GridSize:number

IsDebuggable
Zabezpieczenia skryptów Roblox
Odczyt równoległy
Plugin.IsDebuggable:boolean

Metody
Activate
Zabezpieczenia dodatku plug-in
Plugin:Activate(exclusiveMouse:boolean):()
Parametry
exclusiveMouse:boolean
Zwroty
()

CreateDockWidgetPluginGui
Przestarzałe

CreateDockWidgetPluginGuiAsync
Wynik
Zabezpieczenia dodatku plug-in
Plugin:CreateDockWidgetPluginGuiAsync(
pluginGuiId:string, dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
Parametry
pluginGuiId:string
dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
Przykłady kodu
Przycisk Tekstowy GUI Widget
-- Utwórz nowy obiekt 'DockWidgetPluginGuiInfo'
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- Widget zostanie zainicjowany w pływającym panelu
true, -- Widget będzie początkowo włączony
false, -- Nie nadpisuj poprzedniego stanu włączenia
200, -- Domyślna szerokość pływającego okna
300, -- Domyślna wysokość pływającego okna
150, -- Minimalna szerokość pływającego okna (opcjonalnie)
150 -- Minimalna wysokość pływającego okna (opcjonalnie)
)
-- Utwórz nowy widget 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 = "Kliknij mnie"
testButton.Parent = testWidget

CreatePluginAction
Zabezpieczenia dodatku plug-in
Plugin:CreatePluginAction(
actionId:string, text:string, statusTip:string, iconName:string, allowBinding:boolean
Parametry
actionId:string
text:string
statusTip:string
iconName:string
allowBinding:boolean
Wartość domyślna: true
Przykłady kodu
Tworzenie PluginAction
local pluginAction = plugin:CreatePluginAction(
"HelloWorldAction",
"Hello World",
"Wyświetla 'Hello world!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "Test Action"
local function actionTriggered()
print("Hello world!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu
Zabezpieczenia dodatku plug-in
Plugin:CreatePluginMenu(
id:string, title:string, icon:string
Parametry
title:string
icon:string
Przykłady kodu
Tworzenie PluginMenu i PluginMenuAction
-- Ten kod można wkleić do Command Bar, ale tylko raz
local pluginMenu = plugin:CreatePluginMenu(math.random(), "Test Menu")
pluginMenu.Name = "Test Menu"
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 = "Sub Menu"
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("Wybrana akcja:", selectedAction.Text, "z ActionId:", selectedAction.ActionId)
else
print("Użytkownik nie wybrał akcji!")
end
end
end
toggle.Changed:Connect(onToggled)

CreateToolbar
Zabezpieczenia dodatku plug-in
Plugin:CreateToolbar(name:string):PluginToolbar
Parametry
name:string
Przykłady kodu
Plugin:CreateToolbar
plugin:CreateToolbar("ExampleToolbar")

Deactivate
Zabezpieczenia dodatku plug-in
Plugin:Deactivate():()
Zwroty
()

GetJoinMode
Zabezpieczenia dodatku plug-in
Plugin:GetJoinMode():Enum.JointCreationMode

GetMouse
Zabezpieczenia dodatku plug-in
Plugin:GetMouse():PluginMouse
Przykłady kodu
Plugin:GetMouse
local mouse = plugin:GetMouse()
local function button1Down()
print("Przycisk 1 naciśnięty z PluginMouse")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool
Zabezpieczenia dodatku plug-in
Plugin:GetSelectedRibbonTool():Enum.RibbonTool
Przykłady kodu
Plugin:GetSelectedRibbonTool
plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- czekaj na następną klatkę
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("Wybrane narzędzie RibbonTool to", selectedRibbonTool)

GetSetting
Zabezpieczenia dodatku plug-in
Plugin:GetSetting(key:string):Variant
Parametry
key:string
Zwroty
Variant
Przykłady kodu
Plugin:GetSetting
local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("Witamy z powrotem!")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("Witamy! Dziękujemy za zainstalowanie tego pluginu!")
end

GetStudioUserId
Przestarzałe

ImportFbxAnimation
Przestarzałe

ImportFbxAnimationAsync
Wynik
Zabezpieczenia dodatku plug-in
Plugin:ImportFbxAnimationAsync(
rigModel:Instance, isR15:boolean
Parametry
rigModel:Instance
isR15:boolean
Wartość domyślna: true
Zwroty

ImportFbxRig
Przestarzałe

ImportFbxRigAsync
Wynik
Zabezpieczenia dodatku plug-in
Plugin:ImportFbxRigAsync(isR15:boolean):Instance
Parametry
isR15:boolean
Wartość domyślna: true
Zwroty

Intersect
Zabezpieczenia dodatku plug-in
Plugin:Intersect(objects:Instances):Instance
Parametry
objects:Instances
Zwroty

IsActivated
Zabezpieczenia dodatku plug-in
Plugin:IsActivated():boolean
Zwroty

IsActivatedWithExclusiveMouse
Zabezpieczenia dodatku plug-in
Plugin:IsActivatedWithExclusiveMouse():boolean
Zwroty

Negate
Zabezpieczenia dodatku plug-in
Plugin:Negate(objects:Instances):Instances
Parametry
objects:Instances
Zwroty
Instances

OpenScript
Przestarzałe

OpenWikiPage
Zabezpieczenia dodatku plug-in
Plugin:OpenWikiPage(url:string):()
Parametry
url:string
Zwroty
()
Przykłady kodu
Plugin:OpenWikiPage
plugin:OpenWikiPage("API:Class/BasePart")

PromptForExistingAssetId
Wynik
Zabezpieczenia dodatku plug-in
Plugin:PromptForExistingAssetId(assetType:string):number
Parametry
assetType:string
Zwroty

PromptForExistingAssetIdAsync
Wynik
Zabezpieczenia dodatku plug-in
Plugin:PromptForExistingAssetIdAsync(assetType:string):number
Parametry
assetType:string
Zwroty

PromptSaveSelection
Przestarzałe

PromptSaveSelectionAsync
Wynik
Zabezpieczenia dodatku plug-in
Plugin:PromptSaveSelectionAsync(suggestedFileName:string):boolean
Parametry
suggestedFileName:string
Zwroty

SaveSelectedToRoblox
Zabezpieczenia dodatku plug-in
Plugin:SaveSelectedToRoblox():()
Zwroty
()

SelectRibbonTool
Zabezpieczenia dodatku plug-in
Plugin:SelectRibbonTool(
tool:Enum.RibbonTool, position:UDim2
):()
Parametry
position:UDim2
Zwroty
()

Separate
Zabezpieczenia dodatku plug-in
Plugin:Separate(objects:Instances):Instances
Parametry
objects:Instances
Zwroty
Instances

SetSetting
Zabezpieczenia dodatku plug-in
Plugin:SetSetting(
key:string, value:Variant
):()
Parametry
key:string
value:Variant
Zwroty
()
Przykłady kodu
Plugin:GetSetting i Plugin:SetSetting
local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("Witaj z powrotem!")
else
print("Dziękujemy za zainstalowanie tej wtyczki!")
plugin:SetSetting(RAN_BEFORE_KEY, true)
end

StartDrag
Zabezpieczenia dodatku plug-in
Plugin:StartDrag(dragData:Dictionary):()
Parametry
dragData:Dictionary
Zwroty
()
Przykłady kodu
Plugin Przeciągnij i Upuść
assert(plugin, "Ten skrypt musi być uruchomiony jako plugin Studio")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGuiAsync("Źródło Przeciągania", widgetInfo)
dragSourceWidget.Title = "Źródło Przeciągania"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Witaj, przeciąganie pluginów"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edytuj tekst powyżej, a następnie zacznij przeciągać tutaj"
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)
-- Ten widżet będzie odbierał upuszczenia
local dragTargetWidget = plugin:CreateDockWidgetPluginGuiAsync("Cel Upuszczenia", widgetInfo)
dragTargetWidget.Title = "Cel Upuszczenia"
-- Ten TextLabel wyświetli, co zostało upuszczone
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Upuść tutaj..."
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
Zabezpieczenia dodatku plug-in
Plugin:Union(objects:Instances):Instance
Parametry
objects:Instances
Zwroty

Zdarzenia
Deactivation
Zabezpieczenia dodatku plug-in
Plugin.Deactivation():RBXScriptSignal

Unloading
Zabezpieczenia dodatku plug-in
Plugin.Unloading():RBXScriptSignal

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.