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
In order for the waypoints to work correctly, you need to set one both before AND after you perform the action that should be able to be undone.
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
-- Calling SetWaypoint before the work will not cause any issues, however
-- it is redundant, only the call AFTER the work is needed.
--ChangeHistoryService:SetWaypoint("Setting selection to neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Call SetWaypoint AFTER completing the work
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- Nothing to do. You do not need to call SetWaypoint in the case where
-- the action did not end up making any changes to the experience.
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.