Pluginy

*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.

Plug-in jest rozszerzeniem, które dodaje dodatkowe funkcje lub funkcjonalność do Studio .Możesz instalować wtyczki stworzone przez społeczność z Sklepu twórców, lub możesz tworzyć i publikować własne w Pudełku narzędzi, aby używać ich w swoich doświadczeniach.

Jeśli zdecydujesz się również rozprowadzać swoje wtyczki do sklepu dla twórców, możesz je oferować za darmo lub sprzedawać za dolary amerykańskie (minimalna cena to 4,99 USD).Roblox oferuje liderującą na rynku udział w przychodach za te sprzedaże, ponieważ odliczane są tylko podatki i opłaty za przetwarzanie płatności.Aby uzyskać więcej informacji na temat sprzedaży pluginów, zobacz Sprzedaż w sklepie twórców.

Twórz nowe wtyczki

Możesz tworzyć własne wtyczki, aby poprawić swój przepływ pracy w Studio.Poniższy przykład kodu to plugin o nazwie EmptyScriptAdder , który wstawia pusty skrypt jako dziecko obiektu lub w ServerScriptService.Poniższe sekcje wyjaśniają główne części tworzenia tego dodatek plug-in.

Aby rozpocząć, powinieneś włączyć Debugowanie pluginów włączone w sekcji Studio ustawień Studio.Wyeksponuje to PluginDebugService w Studio, które zapewnia debugowanie w czasie rzeczywistym dla kodu twojego dodatek plug-ini ułatwia ponowne ładowanie i zapisywanie twojego dodatek plug-in.

Wtyczka EmptyScriptAdder

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Utwórz nową sekcję paska narzędzi o nazwie "Niestandardowe narzędzia skryptowe"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Dodaj przycisk paska narzędzi o nazwie "Utwórz pusty skrypt"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://14978048121")
-- Zrób przycisk klikalnym, nawet jeśli widok 3D jest ukryty
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)

Zapisz skrypty pluginów

Pluginy zaczynają się od skryptów.Aby utworzyć dodatek plug-in, stwórz Script i zapisz ją jako wtyczkę za pomocą Explorer.Na przykład, aby utworzyć Plugin EmptyScriptAdder :

  1. Wprowadź nowy Script wewnątrz ServerStorage i zmień nazwę na EmptyScriptAdder .

  2. Skopiuj i wklej kod EmptyScriptAdder Plugin do nowego skryptu.

  3. W oknie Eksploratora kliknij prawym przyciskiem skrypt i wybierz Zapisz jako lokalny plugin .

  4. W oknie wyskakującym kliknij Zapisz , aby wstawić skrypt pluginu do lokalnego katalogu Plugins instalacji Studio.

  5. Wtyczka powinna pojawić się w PluginDebugService i rozpocząć działanie.

Przeładowanie i zapisanie zmian

Z Plugin wewnątrz PluginDebugService, możesz łatwo aktualizować wtyczkę, klikając prawym przyciskiem myszy i następnie wybierając Zapisz i ponownie załaduj wtyczkę z menu kontekstowego.Jeśli po prostu chcesz ponownie załadować dodatek plug-in, na przykład, aby przejść przez sekcję kodu za pomocą punktu przerwania bez zapisywania dodatek plug-in, możesz alternatywnie wybrać Przeładowanie wtyczki .

Dodaj przyciski paska narzędzi

Aby dodać przycisk dla twojego pluginu do zakładki Plugins paska narzędzi Studio, użyj metod Plugin:CreateToolbar() i PluginToolbar:CreateButton().W kodzie dla EmptyScriptAdder linia 5 tworzy nową sekcję w pasku narzędzi o nazwie Narzędzia skryptowe niestandardowe i linia 8 tworzy przycisk o nazwie Twórz pusty skrypt .

New plugin button added to toolbar in Studio

Wykonaj kod przy klikać

Aby wtyczka wykonała kod, gdy użytkownik kliknie przycisk paska narzędzi, połącz funkcję z wydarzeniem PluginToolbarButton.Click przycisku.W kodzie dla EmptyScriptAdder funkcja połączenia jest onNewScriptButtonClicked().

Sprawdź wybór użytkownika

Aby zmodyfikować zachowanie wtyczki w oparciu o to, co dodatek plug-inwybrał, użyj usługi Selection.Funkcja onNewScriptButtonClicked() sprawdza, czy użytkownik ma coś wybranego i tworzy nowy skrypt jako jego dziecko zamiast wewnątrz ServerScriptService.Jeśli użytkownik nie ma nic zaznaczonego, tworzy nowy skrypt w ServerScriptService .

Wsparcie odwołania i powrotu

Użyj ChangeHistoryService, aby umożliwić użytkownikom cofanie i powtarzanie zmian dokonanych przez plugin w ramach doświadczenia.W swoim skrypcie ustaw plugin, aby zadzwonił ChangeHistoryService:TryBeginRecording() i przechował identyfikator przypisany do wezwania API przed wprowadzeniem zmian.Następnie skonfiguruj wtyczkę, aby wywoływała ChangeHistoryService:FinishRecording() po dokonaniu zmian, tak aby rejestrowała wszelkie zmiany dokonane podczas sesji nagraniowej do cofania i powtarzania.

Poniższy przykład kodu tworzy przykładowy plugin, który może zastosować materiał neonowy do wybranych części.Używa ChangeHistoryService do rejestrowania i zarządzania zmianami dokonanymi przez dodatek plug-in:

Przykładowy plugin materiałowy z nagraniami do cofania i powrotu

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Stwórz przykładowy dodatek plug-in
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Połącz funkcję z wydarzeniem kliknięcia
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
-- Nie ma nic do zrobienia.
return
end
-- Spróbuj rozpocząć rejestrację za pomocą określonego identyfikatora
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Sprawdź, czy rejestracja została pomyślnie uruchomiona
if not recording then
-- Ręcznie błąd tutaj. Oznacza to, że twój plugin rozpoczął poprzedni
-- nagranie i nigdy go nie ukończyłeś. Możesz mieć tylko jedno nagranie
-- za każdy aktywny plugin w danym momencie.
return
end
-- Powtarzaj przez wybrane części
for _, part in parts do
part.Material = Enum.Material.Neon -- Ustaw materiał części na Neon
end
-- Zakończ rejestrację, wprowadzając zmiany do historii
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Prześlij, rozprowadź i monetyzuj wtyczki

Podobnie jak w przypadku modeli, siatek, obrazów i animacji możesz rozprowadzać wtyczki do Roblox, aby ułatwić ich ponowne wykorzystanie z pudełka narzędzi.Możesz wybrać, aby udostępnić je publicznie wszystkim innym twórcom na Sklepie twórców lub rozprowadzić je prywatnie do własnego użytku.Jeśli zdecydujesz się rozpowszechnić swój plugin publicznie, możesz ustawić cenę, po której sprzedasz go innym twórcom.

Aby rozpowszechnić dodatek plug-in:

  1. W oknie Eksploratora kliknij prawym przyciskiem skrypt pluginu, a następnie wybierz Opublikuj jako plugin z menu kontekstowego.

  2. (Opcjonalnie) W górnym lewym rogu okna konfiguracji zasobu kliknij obraz, aby przesłać obraz 512×512.

  3. Wypełnij następujące pola:

    • Nazwa : Tytuł dla twojego dodatek plug-in.
    • Opis : Opis, który opisuje, czego potencjalny użytkownik powinien oczekiwać od wtyczki.
    • Twórca : Twórca, którego chcesz przypisać jako twórcę dodatek plug-in.
  4. Kliknij przycisk Potwierdź .Twój plugin jest teraz dostępny w Inwentarzu i Kreacjach zakładkach Pudełko z narzędziami.

  5. Kliknij link do panelu Creator Dashboard, aby skonfigurować dystrybucję.