Plugin

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat

Plugin adalah objek utama bertanggung jawab untuk menciptakan widget Studio dasar, alat toolbar plugin, tombol plugin, dan banyak lagi. Ini adalah add-on khusus untuk Studio yang menambahkan perilaku dan fitur baru yang tidak biasa. Plugin objek dapat diakses melalui referensi global Global.

Contoh Kode

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

Rangkuman

Properti

Metode

Acara

Properti

CollisionEnabled

Hanya Baca
Tidak Direplikasi
Baca Paralel

Mengembalikan apakah pengguna mengaktifkan Collisions di studio di bawah tab Model.

DisableUIDragDetectorDrags

Baca Paralel
Keamanan Skrip Roblox

GridSize

Hanya Baca
Tidak Direplikasi
Baca Paralel

Mengembalikan ukuran geser grid yang telah ditetapkan pengguna di Studio di bawah Model atau Avatar tabs. Catat bahwa property ini mungkin memiliki kesalahan rounding kecil; misalnya, itu mungkin 0.0099999997764826 untuk pengguna menetapkan 1 atau 0.400

Metode

Activate

void
Keamanan Plugin

Fungsi ini menetapkan status plugin yang diaktifkan. Aktivasi plugin memungkinkan kontrol mouse melalui metode Plugin:GetMouse() .

Pada saat tertentu, ada 0 atau 1 Plugin Aktif. Mengaktifkan plugin akan menonaktifkan semua plugin lainnya (mereka akan menerima acara Plugin.Deactivation).

Lihat juga:

  • Plugin:IsActivatedWithExclusiveMouse() , kembalinya true jika plugin ini saat ini aktif dengan mouse eksklusif, setelah telah diaktifkan melalui fungsi ini
  • Plugin.Unloading , menjalankan langsung sebelum plugin diunload atau dimuat ulang melalui pemasangan ulang, deaktivasi, atau pembaruan

Parameter

exclusiveMouse: bool

Boolean yang menentukan apakah akan mengaktifkan plugin dengan mouse eksklusif. Jika benar, maka PluginMouse dapat diakses melalui Plugin:GetMouse().


Memberikan nilai

void

CreatePluginAction

Keamanan Plugin

Fungsi ini menciptakan PluginAction yang merupakan objek yang mewakili tindakan yang dapat dilakukan secara umum di Roblox Studio, tanpa ada langsung terkait Toolbar atau Enum.Button . Di Roblox Studio, mereka dapat ditetapkan tombol pintas di bawah <

Ketika tindakan diaktifkan, acara PluginAction.Triggered diperingatkan.

Untuk memastikan PluginActions berfungsi seperti yang diharapkan, mereka harus dibuat menggunakan fungsi ini.

Lihat juga:

Parameter

actionId: string

Harus menjadi string unik yang mengidentifikasi tindakan Plugin ini dari orang lain.

text: string

Nama yang ditunjukkan action.

statusTip: string

Deskripsi actionyang ditunjukkan.

iconName: string

Nama ikon yang digunakan untuk menampilkan plugin.

Nilai Default: ""
allowBinding: bool

Apakah PluginAction akan tersembunyi dari pandangan pintas Studio. Berguna untuk tindakan konteks. Standar untuk benar.

Nilai Default: true

Memberikan nilai

Contoh Kode

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

Keamanan Plugin

Fungsi ini membuat PluginMenu baru, yang merupakan menu konteks yang dapat ditampilkan di Studio yang menunjukkan daftar PluginActions dan mendukung submeny.

Untuk memastikan PluginMenus berfungsi seperti yang diharapkan, mereka harus dibuat menggunakan fungsi ini.

Lihat juga:

Parameter

id: string

ID unik untuk menu.

title: string

Teks untuk ditampilkan saat digunakan sebagai sub menu.

Nilai Default: ""
icon: string

Ikon untuk ditampilkan saat digunakan sebagai sub menu.

Nilai Default: ""

Memberikan nilai

Contoh Kode

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

Keamanan Plugin

Fungsi CreateToolbar membuat PluginToolbar baru dengan nama yang diberikan. Toolbar kemudian dapat digunakan untuk membuat tombol plugin.

Parameter

name: string

Teks yang terlihat di bilah alat, menandai kelompok tombol yang terkandung di dalamnya.


Memberikan nilai

Contoh Kode

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

void
Keamanan Plugin

Mengaktifkan plugin. Ini akan mengurangi Class.PluginMouse yang terkait jika telah aktif

Lihat juga:


Memberikan nilai

void
Keamanan Plugin

Mengembalikan Enum.JointCreationMode yang dibuat oleh pengguna di studio di bawah tab Model.


Memberikan nilai

GetMouse

Keamanan Plugin

DapatkanMouse mengembalikan PluginMouse yang dapat digunakan saat plugin aktif melalui Plugin:Activate() .


Memberikan nilai

Contoh Kode

Plugin:GetMouse

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

GetSelectedRibbonTool

Keamanan Plugin

Dapatkan SelectedRibbonTool kembali Enum.RibbonTool . Ini mengembalikan Ennum yang sesuai dengan alat tertentu. Ini akan mengembalikan apakah alat di選擇手動 atau secara程式 via Plugin:SelectRibbonTool() .


Memberikan nilai

Contoh Kode

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
Keamanan Plugin

Mengambil nilai yang disimpan sebelumnya dengan unityang diberikan, atau nol jika kunci yang diberikan tidak ada.

Karena beberapa instansi plugin yang sama dapat berjalan bersamaan (misalnya, jika beberapa jendela Studio terbuka), Anda tidak boleh bergantung pada nilai ini tetap sama selama waktu. Instans plugin lainnya dapat memperbarui pengaturan kapan saja.

Panggilan ini dapat diam-diam gagal dan mengembalikan nil jika beberapa instans plugin yang sama sedang membaca dan menulis data. Jika plugin Anda mengharapkan untuk menulis ke pengaturan dengan sering, Anda harus memeriksa kembali nilai yang dikembalikan dari panggilan ini setelah waktu yang singkat untuk membedakan antara pengaturan yang sementara tidak tersedia dan pengaturan yang tidak ada.

Parameter

key: string

Memberikan nilai

Variant

Contoh Kode

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

Keamanan Plugin

Parameter

objects: Instances

Memberikan nilai

IsActivated

Keamanan Plugin

Fungsi ini kembali benar jika plugin ini saat ini aktif, setelah telah diaktifkan melalui fungsi Plugin:Activate() .


Memberikan nilai

Boolean yang menunjukkan apakah plugin saat ini aktif.

IsActivatedWithExclusiveMouse

Keamanan Plugin

Fungsi ini mengembalikan benar jika plugin ini saat ini aktif dengan mouse eksklusif, setelah telah diaktifkan melalui fungsi Plugin:Activate(). Jika fungsi ini mengembalikan benar, maka PluginMouse dapat diambil melalui fungsi Plugin:GetMouse().

Lihat juga:

  • Plugin.Deactivation , diaktifkan saat plugin diaktifkan
  • Plugin.Unloading , menjalankan langsung sebelum plugin diunload atau dimuat ulang melalui pemasangan ulang, deaktivasi, atau pembaruan

Memberikan nilai

Apakah plugin ini saat ini aktif dengan mouse eksklusif.

Negate

Instances
Keamanan Plugin

Menghilangkan bagian yang diberikan dan mengembalikan Operasi Penolakan yang sesuai.

Parameter

objects: Instances

Memberikan nilai

Instances

OpenScript

void
Keamanan Plugin

Digunakan untuk membuka instansi naskah yang diberikan dalam jendela editor, di Roblox studio, pada garis yang diberikan. Jika tidak ada garis yang diberikan sebagai argumen, itu akan default ke 1.

Parameter

lineNumber: number
Nilai Default: 1

Memberikan nilai

void

Contoh Kode

Plugin:OpenScript

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

OpenWikiPage

void
Keamanan Plugin

Membuka jendela bantuan konteks ke halaman wiki yang url taut ke.

Parameter

url: string

Memberikan nilai

void

Contoh Kode

Plugin:OpenWikiPage

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

SaveSelectedToRoblox

void
Keamanan Plugin

Membuka jendela upload untuk pilihan pengguna saat ini.


Memberikan nilai

void

SelectRibbonTool

void
Keamanan Plugin

Aktifkan alat Roblox Studio yang ditentukan. Jika alat tersebut membuka jendela, parameter posisi menentukan di mana harus ditunjukkan di layar.

Catatan:

  • Sebuah objek harus dipilih agar ini berfungsi dengan benar.
  • Mengubah field skala position property tidak akan mengubah popup dialog.

Parameter

position: UDim2

Memberikan nilai

void

Separate

Instances
Keamanan Plugin

Memisahkan Operasi Uni yang diberikan dan mengembalikan bagian yang dihasilkan.

Parameter

objects: Instances

Memberikan nilai

Instances

SetSetting

void
Keamanan Plugin

Menyimpan nilai tertentu untuk penggunaan nanti di bawah unityang diberikan.Nilai ini akan bertahan bahkan setelah Roblox Studio ditutup. Pengaturan ini disimpan dalam format JSON sebagai peta dengan kunci string. Arrays diubah secara otomatis menjadi peta dengan menyimpan kunci numerik ke string pertama.

Catat bahwa format JSON menempatkan batasan tambahan, termasuk karakter berikut yang dapat menyebabkan file pengaturan rusak:

  • Backslashes ( \ ) di kunci atau nilai, khususnya kutipan yang lolos ( \ "5").
  • Baris baru ( \n ) dalam kunci.
  • Quotes ( " ) dalam kunci.
  • Periode ( ) di kunci.

Panggilan ini dapat gagal diam-diam jika beberapa instansi plugin yang sama secara aktif membaca dan menulis data. Jika plugin Anda berharap untuk menulis ke pengaturan dengan sering, Anda dapat memeriksa apakah data telah ditulis dengan benar dengan menelepon Plugin:GetSetting() .

Parameter

key: string
value: Variant

Memberikan nilai

void

Contoh Kode

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
Keamanan Plugin

Mulai Drag memulai tindakan seret dengan menggunakan kamus parameter. Para parameter adalah sebagai berikut:


<tbody>
<tr>
<td><b>Pengirim</b></td>
<td>string</td>
<td><code>""</code></td>
<td>
Mengidentifikasi sumber tindakan tarik ke target jatuh
</td>
</tr>
<tr>
<td><b>Tipe Mime</b></td>
<td>string</td>
<td><code>""</code></td>
<td>
Jenis <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MINE</a> dari <b>Data</b> .
</td>
</tr>
<tr>
<td><b>Data</b></td>
<td>string</td>
<td><code>""</code></td>
<td>
Informasi tentang actionseret, misalnya apa yang di seret. Harus digunakan oleh target drop.
</td>
</tr>
<tr>
<td><b>Ikon Tikus</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
Ikon untuk digunakan untuk mouse cursor selama拖. Jika kosong, menggunakan cursor default.
</td>
</tr>
<tr>
<td><b>Simbol Drag</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
Sebuah gambar untuk menyempurnakan tampilan di bawah mouse selama tahap tertarik. Ini seharusnya mewakili item yang terseret.
</td>
</tr>
<tr>
<td><b>HotSpot</b></td>
<td><code>Datatype.Vector2</code></td>
<td><code>Datatype.Vector2.new(0, 0)</code></td>
<td>
PixelOffset dari bagian atas kiri di mana cursor harus "menahan" <b>DragIcon</b> .
</td>
</tr>
</tbody>
NamaJenisStandarDeskripsi

Lihat juga:

Parameter

dragData: Dictionary

Memberikan nilai

void

Contoh Kode

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)
Keamanan Plugin

Menggabungkan bagian yang diberikan dan mengembalikan Operasi Union yang dihasilkan.

Parameter

objects: Instances

Memberikan nilai

CreateDockWidgetPluginGui

Hasil
Keamanan Plugin

CreateDockWidgetPluginGui menciptakan DockWidgetPluginGui baru dari DockWidgetPluginGuiInfo . Parameter pertama, 0> uginGuiId0>, harus menjadi string yang unik dan konsisten. Ini digunakan untuk menyimpan status dok state dan beberapa rincian internal lainnya.

Parameter

pluginGuiId: string

Pengenal unik dan konsisten yang digunakan untuk menyimpan status dok bunga dan detail internal lainnya.

dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

Menggambarkan DockWidgetPluginGui untuk menciptakan (negara awal, ukuran, dll).


Memberikan nilai

Contoh Kode

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

Hasil
Keamanan Plugin

Fungsi ini menginstruksikan pengguna untuk membuka file animasi .fbx yang dapat dimuat ke rigModel , lalu melanjutkan untuk menyisipkan animasi sebagai KeyframeSequence dalam Workspace .

Parameter

rigModel: Instance
isR15: bool
Nilai Default: true

Memberikan nilai

ImportFbxRig

Hasil
Keamanan Plugin

Mendesak pengguna untuk membuka file .fbx, mengunggah komponen individu dari model sebagai meshes, dan menghasilkan rig karakter untuk digunakan dalam animasi, yang dimuat ke dalam Workspace .

Parameter

isR15: bool
Nilai Default: true

Memberikan nilai

PromptForExistingAssetId

Hasil
Keamanan Plugin

Membuka jendela di Roblox Studio, yang menginstruksikan pengguna untuk memilih aset berdasarkan assetType yang ditentukan. Mengembalikan apa yang dinyatakan sebagai asetId, atau -1 jika jendela ditutup.

Parameter

assetType: string

Memberikan nilai

PromptSaveSelection

Hasil
Keamanan Plugin

Mendesak pengguna untuk menyimpan pilihan mereka saat ini dengan nama file yang ditentukan. Kembalikan benar jika pengguna menyimpan file.

Parameter

suggestedFileName: string
Nilai Default: ""

Memberikan nilai

Acara

Deactivation

Keamanan Plugin

Diaktifkan ketika Plugin dideaktifkan. Ini terjadi ketika kode plugin menelepon Plugin:Deactivate() , atau karena beberapa plugin lainnya menelepon Plugin:Activate(), yang memaksa semua plugin lainnya kehilangan status aktif mereka.

Lihat juga:

  • Plugin.Unloading , menjalankan langsung sebelum plugin diunload atau dimuat ulang melalui pemasangan ulang, deaktivasi, atau pembaruan

Unloading

Keamanan Plugin

Acara ini segera menjalankan sebelum Plugin berhenti berjalan. Plugin diunload saat dinonaktifkan, tidak diinstal, akan diperbarui, atau saat tempat ditutup.

Ini mengizinkan plugin untuk membersihkan setelah dirinya sendiri sebelum skrip berhenti berjalan, misalnya untuk menghapus instans yang tidak perlu dari DataModel . Jika plugin tidak membersihkan dengan benar, salinan lama akan tetap ada. Saat ini, pengguna mungkin diwajibkan untuk menutup dan membuka kembali tempat yang merupakan pengalaman pengguna yang buruk.

Instansi plugin seperti PluginToolbarButtons , DockWidgetPluginGuis dan PluginGuis secara otomatis bersihkan ketika plugin diunload sehingga tidak perlu menghapusnya.