Plugin

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz

Plugin , temel Studio widget'leri, plugin araç çubukları, plugin düğmeleri ve daha fazlasını oluşturan ana objedir. Bu, normalde dahil edilmeyen yeni davranışlar ve özellikler ekleyen özel bir Studio eklentisi dir. plugin objesi, bir <

Kod Örnekleri

Script - Pass the Plugin Global to a ModuleScript

assert(plugin, "This script must be run as a plugin!")
-- Code beyond this point will execute only if the script is run as a plugin
-- Load the module and pass the plugin reference
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- Verify if the plugin reference was initialized
pluginModule:CheckForPluginGlobal()
ModuleScript - Receive and Store the Plugin Global

local pluginModule = {}
local plugin -- Local plugin reference
-- Initialize the plugin reference if not already set
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("Plugin is already initialized")
end
end
-- Check if the plugin reference is set and print out appropriate info
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("Plugin reference is set!")
else
warn("Plugin reference is missing!")
end
end
return pluginModule

Özet

Özellikler

  • Salt Okunur
    Çoğaltılmamış
    Paralel oku

    Stüdyo altındaki Collisionsyi etkinleştirdiğini kullanıcı olarak Studio'da iptal eder.

  • Salt Okunur
    Çoğaltılmamış
    Paralel oku

    Stüdyo'da belirlediği kullanıcının girdiği küresel boyutu döndürür.

Yöntemler

Etkinlikler

Özellikler

CollisionEnabled

Salt Okunur
Çoğaltılmamış
Paralel oku

Stüdyo altındaki Collisionsyi etkinleştirdiğini kullanıcı olarak Studio'da iptal eder.

DisableUIDragDetectorDrags

Paralel oku
Roblox Betik Güvenliği

GridSize

Salt Okunur
Çoğaltılmamış
Paralel oku

Kullanıcının Studio'da Model veya Avatar altındaki grille bağlama boyutunu içerir. Bu özellik, bu özellikteki hafif yuvarlama hataları olabilir; örneğin, bir kullanıcının 1 veya 0.4000000059604645 için b

Yöntemler

Activate

void
Eklenti Güvenliği

Bu işlev, çağrı plugin'inin devletini etkinleştirmeye ayarlar. Etkinleştirme, plugin'i etkinleştirerek mouse kontrolünü Plugin:GetMouse() metodu aracılığıyla sağlar.

Herhangi bir zamanda 0 veya 1 Aktif Plugin vardır. Bir plugin'i etkinleştirmek, diğer tüm plugin'leri devre dışı bırakır (onlar bir Plugin.Deactivation etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleştirme etkinleş

Ayrıca bakınız:

Parametreler

exclusiveMouse: bool

Eklusif bir fareile plugin'i etkinleştireceğinizi belirtir bir booleyon. Eğer doğruysa, bir PluginMouse ile alınabilir.


Dönüşler

void

CreatePluginAction

Eklenti Güvenliği

Bu işlev, Roblox Studio'da genel yapılandırılabilir bir eylem temsil eden bir PluginAction oluşturur, bu da Roblox Studio'da herhangi bir doğrudan ilişkili Toolbar veya Enum.Button yoktur. Roblox Studio'da, bunların bir k

Bir eylem tetiklendiğinde, PluginAction.Triggered etkinliği bildirilir.

PluginActions'ın beklediği gibi çalışması için, bu işlev kullanılarak oluşturulmalıdır.

Ayrıca bakınız:

Parametreler

actionId: string

Bu PluginAction'ı diğerlerinden ayırt eden benzersiz bir yol olmalıdır.

text: string

Eylemin gösterilen adı.

statusTip: string

Eylemin gösterilen aksiyon.

iconName: string

Eklentinin görüntülenmesi için kullanılan eklentiadı.

Varsayılan değer: ""
allowBinding: bool

Class.PluginAction ile Studio'nun kısayol görüntüsünden gizlenip görünmeyeceği. Kullanışlıdır. Standartlar doğrudan doğru.

Varsayılan değer: true

Dönüşler

Kod Örnekleri

Creating a PluginAction

local pluginAction = plugin:CreatePluginAction(
"HelloWorldAction",
"Hello World",
"Prints a 'Hello world!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "Test Action"
local function actionTriggered()
print("Hello world!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu

Eklenti Güvenliği

Bu işlev, Studio'da görüntülenen bir liste gibi PluginMenu ve alt menüleri destekleyen yeni bir PluginActions oluşturur.

PluginMenus'un beklediği gibi çalışması için bu işlev kullanılarak oluşturulmalıdır.

Ayrıca bakınız:

Parametreler

id: string

Menü için benzersiz bir kimlik.

title: string

Sub menü olarak kullanıldığında görüntülenen metin.

Varsayılan değer: ""
icon: string

Sub menü olarak kullanıldığında gösterilecek simge.

Varsayılan değer: ""

Dönüşler

Kod Örnekleri

Creating a PluginMenu and PluginMenuAction

-- This code can be pasted into the command bar, but only once
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("Selected Action:", selectedAction.Text, "with ActionId:", selectedAction.ActionId)
else
print("User did not select an action!")
end
end
end
toggle.Changed:Connect(onToggled)

CreateToolbar

Eklenti Güvenliği

OluşturTablosu işlevi, verilen isimle bir yeni PluginToolbar oluşturur. Toolbar sonra plugin düğmeleri oluşturmak için kullanılabilir.

Parametreler

name: string

Araç çubuğunun içinde bulunan gruba etiketlenmiş görünen yazı.


Dönüşler

Kod Örnekleri

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

void
Eklenti Güvenliği

Eklentiyi devre dışı bırakır. Bu, etkinleştirilmişse bağlantılı PluginMouse'yı devre dışı bırakacaktır

Ayrıca bakınız:


Dönüşler

void
Eklenti Güvenliği

Stüdyo altındaki Enum.JointCreationMode modunu kullanıcının ayarladığını döndürür.


Dönüşler

GetMouse

Eklenti Güvenliği

GetMouse , aktif plugin aracılığıyla kullanılabilen bir PluginMouse geri döndürür.


Dönüşler

Kod Örnekleri

Plugin:GetMouse

local mouse = plugin:GetMouse()
local function button1Down()
print("Button 1 pressed from PluginMouse")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool

Eklenti Güvenliği

GetSelectedRibbonTool, Enum.RibbonTool ile eşleşen bir Plugin:SelectRibbonTool() alır. Alet, belirli bir araçla eşleşen bir En Listesi içerir. Bu, aleti manuel veya programsal olarak Class.Plugin:SelectRibbonTool aracılığıyla seçip seçmediğini içerir.


Dönüşler

Kod Örnekleri

Plugin:GetSelectedRibbonTool

plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- wait for next frame
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("The selected RibbonTool is", selectedRibbonTool)

GetSetting

Variant
Eklenti Güvenliği

Eski değer ile gönderilen anahtar, veya verilen değer mevcut değilse, alır.

Aynı plugin'in birden fazla istemcisi aynı anda çalışabilir (örneğin, eğer birkaç Studio penceresi açık ise), bu değerin zamanla aynı kalmasını beklememelisiniz. Diğer plugin istemcileri herhangi bir anda ayarları güncelleyebilir.

Bu çağrı sessizce başarısız olabilir ve nil if multiple instances of the same plugin are actively reading and writing data. If your plugin expects to write to settings frequently, you should double-check the returned value from this call after a short while to distinguish between a setting being temporarily unavailable and a setting not existing.

Parametreler

key: string

Dönüşler

Variant

Kod Örnekleri

Plugin:GetSetting

local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("Welcome back!")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("Welcome! Thanks for installing this plugin!")
end

Intersect

Eklenti Güvenliği

Parametreler

objects: Instances

Dönüşler

IsActivated

Eklenti Güvenliği

Bu işlev, bu eklentin şu anda aktif olduğu durumda, Plugin:Activate() işlevi aracılığıyla etkinleştirildikten sonra geri döndüğünde doğru olur.


Dönüşler

Eklentinin şu anda aktif olup olmadığını gösteren bir boşluk değeri.

IsActivatedWithExclusiveMouse

Eklenti Güvenliği

Bu işlev, bu eklenti şu anda etkin bir fareile (Plugin:Activate() ile) aktif olduğunda geri döndüğünde doğrudur. Bu işlev geri döndüğünde, bir PluginMouse alınabilir.

Ayrıca bakınız:


Dönüşler

Bu eklugin şu anda özel bir fareile aktif olup olmadığı.

Negate

Instances
Eklenti Güvenliği

Verilen parçaların tersini yapar ve sonuçlanan NegateOperasyonları döndürür.

Parametreler

objects: Instances

Dönüşler

Instances

OpenScript

void
Eklenti Güvenliği

Roblox Studio'daki belirli bir pencerede verilen script instanını açmak için kullanılır. Eğer argüman olarak hiçbir satır verilmezse, varsayılan olarak 1 değeri gösterilir.

Parametreler

lineNumber: number
Varsayılan değer: 1

Dönüşler

void

Kod Örnekleri

Plugin:OpenScript

local newScript = Instance.new("Script")
newScript.Parent = workspace
plugin:OpenScript(newScript)

OpenWikiPage

void
Eklenti Güvenliği

Açılır konum yardımı penceresini url bağlandığı wiki sayfasına açar.

Parametreler

url: string

Dönüşler

void

Kod Örnekleri

Plugin:OpenWikiPage

plugin:OpenWikiPage("API:Class/BasePart")

SaveSelectedToRoblox

void
Eklenti Güvenliği

Kullanıcının mevcut seçimin için bir yükleme penceresi açar.


Dönüşler

void

SelectRibbonTool

void
Eklenti Güvenliği

Belirlenen Roblox Studio araçlarını etkinleştirir. Araç açık bir pencereyi açarsa, pozisyon parametresi ekranda gösterilmesi gereken yeri belirtir.

Not:

  • Bunun doğru şekilde çalışması için bir nesne seçilmelidir.
  • position özelliğinin ölçek alanlarını değiştirmek diyalog pop-up'larına etkisi yoktur.

Parametreler

position: UDim2

Dönüşler

void

Separate

Instances
Eklenti Güvenliği

Verilen UnionOperations'ı ayrılır ve sonuçlanan parçaları döndürür.

Parametreler

objects: Instances

Dönüşler

Instances

SetSetting

void
Eklenti Güvenliği

Verilen anahtar altında daha sonra kullanılmak üzere verilen bir değeri saklar. Değer, Roblox Studio kapatıldıktan sonra bile sürecek şekilde kalır. Bu ayarlar, sayılardaki anahtarı ilk olarak strung anahtarları olarak dönüştürerek haritalar olarak kaydedilir. Matrisler otomatik olarak haritalara dönüştürülür, ilk olarak sayılardaki anahtarı dönüştürerek haritalar olarak kaydedil

JSON formatının, aşağıdaki karakterler dahil olmak üzere ayarları bozabilecek kısıtlamalar getirdiğini lütfen unutmayın:

  • Anahtarlarda veya değerlerde geri slash'lar (\), özellikle kaçırılan virgüller (\").
  • Kilitlerdeki Yeni Satırlar ( \n ) .
  • Anahtarlardaki Alıntılar ( #)
  • Anahtarlardaki periyotlar ( ) .

Aynı plugin'in birden fazla instansı aktif olarak veri okuyup yazıyorsa, bu çağrı sessizce başarısız olabilir. Eğer plugin'ın sık sık ayarlara yazmasını bekliyorsa, Plugin:GetSetting() çağrısının verileri doğru yazıldığını kontrol etmek için çağrı Class.Plugin:GetSetting() .

Parametreler

key: string
value: Variant

Dönüşler

void

Kod Örnekleri

Plugin:GetSetting and Plugin:SetSetting

local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("Welcome back!")
else
print("Thanks for installing this plugin!")
plugin:SetSetting(RAN_BEFORE_KEY, true)
end

StartDrag

void
Eklenti Güvenliği

Çekmeyi Başlat bir dizin içindeki bir çekme eylemini başlatır. Çekme parametreleri şu şekildedir:


<tbody>
<tr>
<td><b>Gönderici</b></td>
<td>dizi</td>
<td><code>""</code></td>
<td>
Yerleştirme eyleminin kaynağını aşağıdaki hedefe belirtir
</td>
</tr>
<tr>
<td><b>MimeType</b></td>
<td>dizi</td>
<td><code>""</code></td>
<td>
Veri türündeki <b>MİME</b> tipi.
</td>
</tr>
<tr>
<td><b>Veri</b></td>
<td>dizi</td>
<td><code>""</code></td>
<td>
Sürükleme aksiyonhakkında bilgi, örneğin ne sürüklendiği. Drop hedefi tarafından kullanılmalıdır.
</td>
</tr>
<tr>
<td><b>Fare Simgesi</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
Farenin kaydırma işlemi sırasında kullanılan simge. Eğer boşsa, varsayılan kursörü kullanır.
</td>
</tr>
<tr>
<td><b>Eylem Simgesi Sürüklemeyi İzle</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
Sürükleme sırasında farenin altında görüntülenen bir görüntü. Bu, sürükleme işlemi yapılırkenki eşyayı temsil etmelidir.
</td>
</tr>
<tr>
<td><b>HotSpot</b></td>
<td><code>Datatype.Vector2</code></td>
<td><code>Datatype.Vector2.new(0, 0)</code></td>
<td>
Ekranın "tutması" gereken <b>Sürükleme Simgesi</b> olan üst kısma sol taraftaki piksel boşluğu.
</td>
</tr>
</tbody>
İsimTürVarsayılanAçıklama

Ayrıca bakınız:

Parametreler

dragData: Dictionary

Dönüşler

void

Kod Örnekleri

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)
Eklenti Güvenliği

Verilen parçalara bağlantı kurar ve sonuçlanan BirleşikOperasyonu döndürür.

Parametreler

objects: Instances

Dönüşler

CreateDockWidgetPluginGui

Bekletir
Eklenti Güvenliği

CreateDockWidgetPluginGui , verilen DockWidgetPluginGui 'den yeni bir DockWidgetPluginGuiInfo oluşturur. İlk parametre, 0> uginGuiId0>, benzersiz ve tutarlı bir yapı olmalıdır. Bu, widget'in dokunma durumunu ve diğer içerikleri kaydeder.

Parametreler

pluginGuiId: string

Tarayıcının dokunma durumunu ve diğer iç ayrıntıları depolamak için kullanılan benzersiz ve tutarlı bir kimlik oluşturur.

dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

Class.DockWidgetPluginGui oluşturmak için (başlangıç devleti, boyutu vb.)


Dönüşler

Kod Örnekleri

Widget GUI Text Button

-- Create new 'DockWidgetPluginGuiInfo' object
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- Widget will be initialized in floating panel
true, -- Widget will be initially enabled
false, -- Don't override the previous enabled state
200, -- Default width of the floating window
300, -- Default height of the floating window
150, -- Minimum width of the floating window (optional)
150 -- Minimum height of the floating window (optional)
)
-- Create new widget GUI
local testWidget = plugin:CreateDockWidgetPluginGui("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 = "Click Me"
testButton.Parent = testWidget

ImportFbxAnimation

Bekletir
Eklenti Güvenliği

Bu işlev, kullanıcının şu anda rigModel ile yükleneceği bir .fbx animasyon dosyasını açmasını ister, ardından animasyonu KeyframeSequence olarak Workspace içine girer.

Parametreler

rigModel: Instance
isR15: bool
Varsayılan değer: true

Dönüşler

ImportFbxRig

Bekletir
Eklenti Güvenliği

Kullanıcının bir .fbx dosyası açmasını, modelin bileşenlerini ağ üzerinden yüklemesi ve animasyon için kullanım için bir karakter şeysi oluşturmasını sağlar, bu Workspace içine yüklendi.

Parametreler

isR15: bool
Varsayılan değer: true

Dönüşler

PromptForExistingAssetId

Bekletir
Eklenti Güvenliği

Roblox Studio'da bir pencere açar, bu kullanıcının belirlenen assetType'e dayalı bir varlığı seçmesini ister. Seçilen varlığın, yoksa kapatılmışsa pencere kapatıldığını gösterir.

Parametreler

assetType: string

Dönüşler

PromptSaveSelection

Bekletir
Eklenti Güvenliği

Kullanıcının mevcut seçimini belirlenen dosya adıyla kaydetmeyi istiyor. Kullanıcı dosyayı kaydettiysa geri döndüğünde doğru döndürür.

Parametreler

suggestedFileName: string
Varsayılan değer: ""

Dönüşler

Etkinlikler

Deactivation

Eklenti Güvenliği

Class.Plugin deaktif edildiğinde işlenir. Bu, plugin kodu çağırır Plugin:Deactivate() veya başka bir plugin çağırır Plugin:Activate(), tüm diğer pluginlerin aktif durumunu kaybetmesi gerekir.

Ayrıca bakınız:

  • Plugin.Unloading , plugin'in yeniden yükleme veya yeniden yükleme işleminden hemen önce etkisiz hale getirilir

Unloading

Eklenti Güvenliği

Bu etkinlik, Plugin durumunu durdurmadan derhal önce başlar. Pluginler devre dışı bırakıldığında, yeniden yüklenmeye hazır hale getirildiğinde veya yer kapatıldığında yeniden yüklenir.

Kullanıcıların, eğer yeterli olmadığından veya yeterli olmadığından kaynaklanan girişleri gizlemelerine izin verir, b. Class.DataModel . Eğer bir plugin doğru bir şekilde temizlenmezse, eski kopyalar kalır. Bu durumda, kullanıcılar yerin kötü bir kullanıcı deneyimi olduğunu zorunda kalabilir.

Eklentilerle ilgili olaylar, örneğin PluginToolbarButtons, DockWidgetPluginGuis ve PluginGuis gibi, yüklenmeden otomatik olarak temizlenir, böylece onları kaldırmaya gerek yoktur.