ChangeHistoryService
*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.
Twórcy pluginów muszą używać ChangeHistoryService aby powiedzieć Studio, jak cofnąć i powtórzyć zmiany, które ich pluginy wprowadzają do doświadczeń, rejestrując je.Zanim dokonasz zmian, wtyczka dzwoni ChangeHistoryService:TryBeginRecording(), pamiętając identyfikator, który przypisuje, a następnie po dokonaniu zmian wtyczka dzwoni ChangeHistoryService:FinishRecording(), aby ukończyć rejestrację.
Wtyczki mogą również programowo wywołać odwołanie lub powtórzenie za pomocą ChangeHistoryService:Undo() lub ChangeHistoryService:Redo() .
ChangeHistoryService nie jest włączone podczas wykonywania, więc wezwanie jego metod w doświadczeniu uruchomionym nie ma żadnego efektu.
Podsumowanie
Metody
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
Komunikuje się ze Studio, że zidentyfikowane nagranie zostało zakończone i należy wykonać ostatnią operację, aby ukończyć nagranie.
Zwraca, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatnią z nich.
Zwraca, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatnią z nich.
Wykonuje ostatnią akcję, która została odwołana.
Wyczyść historię, powodując usunięcie wszystkich punktów odwołania/przywrócenia.
Ustawia, czy usługa ChangeHistory jest włączona, czy nie.
Ustawia nowy punkt docelowy, który może być użyty jako punkt cofania lub powrotu.
Zaczyna śledzić zmiany dokonane w modelu danych do zapisu.
Odwraca ostatnią wykonaną akcję, dla której istnieje punkt docelowy.
Zdarzenia
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Wystrzeliwany, gdy użytkownik ukończy akcji. Parametry pochodzą z TryBeginRecording() i FinishRecording().
Wystrzeliwany, gdy użytkownik rozpoczyna akcji. Parametry pochodzą z TryBeginRecording().
Wystrzeliwany, gdy użytkownik odwraca polecenie cofania. Waypoint opisuje rodzaj akcji, która została wykonana ponownie.
Wystrzeliwany, gdy użytkownik cofnie działanie w studio. Waypoint opisuje rodzaj działania, które zostało cofnięte.
Właściwości
Metody
FinishRecording
Parametry
Zwroty
Przykłady kodu
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Redo
Zwroty
ResetWaypoints
Zwroty
SetWaypoint
Parametry
Zwroty
Przykłady kodu
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts > 0 then
-- Wezwanie SetWaypoint przed pracą nie spowoduje żadnych problemów, jednak
-- jest zbędny, potrzebny jest tylko połączenie po wykonaniu pracy.
--ChangeHistoryService: SetWaypoint("Ustawienie wyboru na neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Wezwij SetWaypoint po zakończeniu pracy
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- Nie ma co robić. Nie musisz wzywać SetWaypoint w przypadku, gdy
-- akcja nie skończyła się żadnymi zmianami w doświadczeniu.
end
end)
TryBeginRecording
Parametry
Zwroty
Przykłady kodu
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)