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
Określa rejestrację z poprzedniego wezwania do TryBeginRecording().Jeśli operacja jest Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, ta wartość jest ignorowana, a rejestracja jest określana przez kontekst.
Określa operację do wykonania.
Opcjonalna tabela wartości do przekazania do OnFinishRecording.
Zwroty
Przykłady kodu
To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().
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)
GetCanRedo
Zwraca, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatnią z nich.
Zwroty
GetCanUndo
Zwraca, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatnią z nich.
Zwroty
Redo
Wykonuje ostatnią akcję, która została odwołana.
Zwroty
ResetWaypoints
Wyczyść historię, powodując usunięcie wszystkich punktów odwołania/przywrócenia.
Zwroty
SetEnabled
Ustawia, czy usługa ChangeHistory jest włączona, czy nie.Gdy ustawiono na fałsz, lista odwołań/powrotów jest oczyszczana i nie jest ponownie zapełniana.Gdy zostanie ponownie ustawiony na prawdę, oryginalna lista nie zostanie przywrócona, ale kolejne operacje dodane zostaną do listy po raz kolejny
Parametry
Zwroty
SetWaypoint
Ta metoda zostanie wkrótce zniesiona na rzecz TryBeginRecording().
ChangeHistoryService śledzi historię pluginów jako strumień zmian właściwości.SetWaypoint() tworzy cięcie w tym strumieniu zmian właściwości, aby działania cofania i powrotu wiedziały, gdzie się zatrzymać.
Zgodnie z konwencją, działania uruchamiane przez użytkownika w Studio muszą wezwać po zakończeniu ich zestawu zmian w doświadczeniu.Wezwanie go przed zestaw zmian może oczyścić inny nieprawidłowo działający plugin, który nie udało się ustawić punktu docelowego, ale jest to słaba przyczyna uzasadniająca takie użycie w swoim własnym dodatek plug-in.
Parametry
Zwroty
Przykłady kodu
Aby punktów drogi poprawnie działały, musisz ustawić jeden zarówno przed, jak i po wykonaniu akcji, która powinna być możliwa do cofnięcia.
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
Ta metoda rozpoczyna rejestrację, aby śledzić zmiany w modelu danych.Musisz wezwać go przed dokonaniem zmian, aby uniknąć przyszłych ostrzeżeń lub błędów.
Gdy rejestracja zostanie zakończona, dzwonisz FinishRecording() z powrotnym identyfikatorem rejestracji, aby ukończyć rejestrację i zaktualizować stos odwołania/powrotu.
Ta metoda zwróci nil, jeśli nie uda się rozpocząć rejestracji.Nagrywania zawodzą, jeśli wtyczka ma już w toku nagrywanie lub użytkownik jest w trybie Uruchom lub Odtwarzanie .
Możesz użyć IsRecordingInProgress() , aby sprawdzić stan rejestracji dodatek plug-in.
Parametry
Nazwa wykonywanej akcji odpowiednia do celów rejestracji i kodowania.
Nazwa akcji wykonywanej do wyświetlenia użytkownikowi.
Zwroty
Przykłady kodu
To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().
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)
Undo
Odwraca ostatnią wykonaną akcję, dla której istnieje punkt docelowy.
Zwroty
Zdarzenia
OnRecordingFinished
Parametry
Nazwa wykonywanej akcji odpowiednia do celów rejestracji i kodowania.
Nazwa akcji wykonywanej do wyświetlenia użytkownikowi.
Identyfikator dla rejestracji.
Opcjonalny stół z FinishOperation().
OnRecordingStarted
Parametry
Nazwa wykonywanej akcji odpowiednia do celów rejestracji i kodowania.
Nazwa akcji wykonywanej do wyświetlenia użytkownikowi.
OnRedo
Wystrzeliwany, gdy użytkownik odwraca polecenie cofania. Waypoint opisuje rodzaj akcji, która została wykonana ponownie.
Parametry
OnUndo
Wystrzeliwany, gdy użytkownik cofnie działanie w studio. Waypoint opisuje rodzaj działania, które zostało cofnięte.