Các plugin

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Một plugin là một tiện ích bổ sung thêm các tính năng hoặc chức năng cho Studio.Bạn có thể cài đặt plugin do cộng đồng tạo ra từ Cửa hàng Nhà sáng tạo, hoặc bạn có thể tạoxuất bản của riêng bạn vào Hộp công cụ để sử dụng trên các trải nghiệm của bạn.

Nếu bạn chọn cũng phân phối plugin của mình cho Cửa hàng Nhà sáng tạo, bạn có thể cung cấp chúng miễn phí hoặc bán chúng với giá Đô la Hoa Kỳ (giá tối thiểu là $4.99).Roblox cung cấp một phần thu nhập dẫn đầu thị trường cho những lượt bán này, vì chỉ có thuế và phí xử lý thanh toán được trừ.Để biết thêm thông tin về việc bán plugin, xem Bán trên Cửa hàng Nhà sáng tạo.

Tạo plugin mới

Bạn có thể tạo các plugin riêng của mình để cải thiện quy trình làm việc trong Studio.Ví dụ mã sau đây là một plugin có tên là EmptyScriptAdder mà nó chèn một kịch bản trống làm con của một đối tượng hoặc trong ServerScriptService .Các phần sau đây giải thích các phần chính để tạo plugin này.

Để bắt đầu, bạn nên bật Gỡ lỗi Plugin được bật trong phần Studio của cài đặt Studio.Điều này sẽ tiết lộ PluginDebugService trong Studio cung cấp gỡ lỗi thời gian thực cho mã plugin của bạn và làm cho việc tải lại và lưu trữ plugin của bạn dễ dàng hơn.

Cài đặt plugin EmptyScriptAdder

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Tạo một phần thanh công cụ mới có tên là "Công cụ kịch bản tùy chỉnh"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Thêm một nút thanh công cụ có tên là "Tạo kịch bản trống"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://14978048121")
-- Làm cho nút có thể nhấp vào ngay cả khi cửa sổ xem 3D được ẩn
newScriptButton.ClickableWhenViewportHidden = true
local function onNewScriptButtonClicked()
local selectedObjects = Selection:Get()
local parent = game:GetService("ServerScriptService")
if #selectedObjects > 0 then
parent = selectedObjects[1]
end
local newScript = Instance.new("Script")
newScript.Source = ""
newScript.Parent = parent
ChangeHistoryService:SetWaypoint("Added new empty script")
end
newScriptButton.Click:Connect(onNewScriptButtonClicked)

Lưu kịch bản plugin

Các plugin bắt đầu từ các kịch bản.Để tạo một plugin, tạo một Script và lưu nó như một plugin bằng cách sử dụng Explorer.Ví dụ, để tạo Plugin EmptyScriptAdder :

  1. Chèn một cái mới Script vào ServerStorage và đổi tên thành EmptyScriptAdder .

  2. Sao chép và dán mã EmptyScriptAdder Plugin vào kịch bản mới.

  3. Trong cửa sổ Explorer , nhấp chuột phải vào kịch bản và chọn Lưu dưới dạng plugin địa phương .

  4. Trong cửa sổ bật lên, hãy nhấp vào Lưu để chèn kịch bản plugin vào thư mục Plugins lokal của cài đặt Studio.

  5. Plugin nên xuất hiện trong PluginDebugService và bắt đầu chạy.

Tải lại và lưu thay đổi

Với Plugin bên trong PluginDebugService, bạn có thể dễ dàng cập nhật plugin bằng cách nhấp chuột phải vào nó và sau đó chọn Lưu và tải lại plugin từ menu ngữ cảnh.Nếu bạn chỉ muốn tải lại plugin, ví dụ để bước qua một phần mã sử dụng điểm dừng mà không lưu plugin, bạn có thể thay thế chọn Tải lại plugin .

Thêm nút thanh công cụ

Để thêm một nút cho plugin của bạn vào tab Plugins của thanh công cụ Studio, hãy sử dụng các phương pháp Plugin:CreateToolbar()PluginToolbar:CreateButton().Trong mã cho EmptyScriptAdder , dòng 5 tạo một phần mới trong thanh công cụ có tên là Công cụ kịch bản tùy chỉnh và dòng 8 tạo một nút có tên là Tạo kịch bản trống .

New plugin button added to toolbar in Studio

Thực thi mã khi nhấp chuột

Để làm cho plugin thực thi mã khi người dùng nhấp vào nút thanh công cụ, kết nối một chức năng với sự kiện PluginToolbarButton.Click.Trong mã cho EmptyScriptAdder , chức năng kết nối là onNewScriptButtonClicked() .

Kiểm tra lựa chọn của người dùng

Để thay đổi hành vi của một plugin dựa trên những gì người dùng đã chọn, hãy sử dụng dịch vụ Selection .Chức năng onNewScriptButtonClicked() kiểm tra xem người dùng có bất cứ thứ gì được chọn và tạo kịch bản mới làm con của nó thay vì bên trong ServerScriptService .Nếu người dùng không có gì được chọn, nó tạo kịch bản mới trong ServerScriptService .

Hỗ trợ hoàn tác và làm lại

Sử dụng ChangeHistoryService để cho phép người dùng hoàn tác và làm lại các thay đổi được thực hiện bởi một plugin trong trải nghiệm.Trong kịch bản của bạn, hãy cài đặt plugin để gọi ChangeHistoryService:TryBeginRecording() và lưu ID được gán cho cuộc gọi API trước khi thực hiện thay đổi.Sau đó, hãy cài đặt plugin để gọi ChangeHistoryService:FinishRecording() sau khi thực hiện thay đổi, để nó bắt lấy bất kỳ thay đổi nào được thực hiện trong phiên ghi âm để hoàn tác và lặp lại.

Ví dụ mã sau đây tạo một plugin ví dụ có thể áp dụng vật liệu neon cho các bộ phận được chọn.Nó sử dụng ChangeHistoryService để ghi lại và quản lý các thay đổi được thực hiện bởi plugin:

Ví dụ về plugin vật liệu với các bản ghi để hoàn tác và làm lại

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Tạo một ví dụ plugin
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Kết nối chức năng với sự kiện nhấp vào
button.Click:Connect(function()
local parts = {}
for _, part in Selection:Get() do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Không có gì để làm.
return
end
-- Thử bắt đầu ghi lại với một nhận dạng cụ thể
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Kiểm tra xem ghi có được khởi động thành công không
if not recording then
-- Xử lý lỗi ở đây. Điều này cho thấy plugin của bạn đã bắt đầu trước
-- ghi lại và không bao giờ hoàn thành nó. Bạn chỉ có thể có một bản ghi
-- theo plugin hoạt động tại một thời điểm.
return
end
-- Lặp qua các phần được chọn
for _, part in parts do
part.Material = Enum.Material.Neon -- Đặt vật liệu của phần thành Neon
end
-- Hoàn thành việc ghi lại, gửi các thay đổi vào lịch sử
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Tải lên, phân phối và hóa tiền các plugin

Như với mô hình , khối mesh , hình ảnh , và hoạt hình , bạn có thể phân phối plugin cho Roblox để làm cho chúng dễ dàng tái sử dụng từ Hộp công cụ .Bạn có thể chọn để làm cho chúng công khai có sẵn cho tất cả các nhà sáng tạo khác trên Cửa hàng Nhà sáng tạo, hoặc phân phối chúng riêng tư cho sử dụng của riêng bạn.Nếu bạn chọn phân phối plugin công khai, bạn có thể đặt một mức giá mà bạn có thể bán cho các nhà sáng tạo khác.

Để phân phối một plugin:

  1. Trong cửa sổ Explorer , nhấp chuột phải vào một kịch bản plugin, sau đó chọn Xuất bản như plugin từ menu ngữ cảnh.

  2. (Tùy chọn) Trong góc trên cùng bên trái của cửa sổ cấu hình tài sản, nhấp vào hình ảnh để tải hình ảnh 512×512.

  3. Hoàn thành các trường sau:

    • Tên : Một tiêu đề cho plugin của bạn.
    • Mô tả : Một mô tả mô tả những gì một người dùng tiềm năng nên mong đợi plugin làm.
    • Người tạo : Người tạo bạn muốn gán cho là người tạo của plugin.
  4. Nhấp vào nút Gửi .Plugin của bạn bây giờ đã có sẵn cho bạn trong tab Tồn khoSáng tạo của Hộp công cụ.

  5. Nhấp vào liên kết đến Bảng điều khiển Nhà sáng tạo để thiết lập phân phối.