ChangeHistoryService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Plugin-Entwickler müssen Class.ChangeHistoryService verwenden, um Studio zu sagen, wie Studio Änderungen, die ihre Plugins in Erlebnissen durch Aufnahmen vornehmen, rückgängig und wiederholen soll, indem es aufzeichnet. Bevor Sie Änderungen vornehmen, ruft ein Plugin Class.ChangeHistoryService:TryBeginRecording() auf, um den Identifikator zu erinnern, den es zugewiesen
Plugins können auch programmgesteuert über ChangeHistoryService:Undo() oder ChangeHistoryService:Redo() aufrufen.
ChangeHistoryService ist beim Laufzeit-Start nicht aktiviert, so dass der Aufruf seiner Methoden in einer laufenden Erfahrung keinen Effekt hat.
Zusammenfassung
Methoden
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
Meldet sich mit Studio, dass das identifizierte Aufnahmen fertig ist, und um die endgültige Operation abzuschließen, um das Aufnahmen zu vervollständigen.
Gibt zurück, ob es Aktionen gibt, die wiederholt werden können, und, wenn es so ist, gibt es die letzte davon zurück.
Gibt zurück, ob es Aktionen gibt, die rückgängig gemacht werden können, und, wenn es so ist, gibt es die letzte davon zurück.
Führt die letzte Aktion aus, die rückgängig gemacht wurde.
Löscht die Geschichte, so dass alle Rückgängig/Wiederholung Waypoints entfernt werden.
Setzt, ob der ChangeHistoryService aktiviert ist oder nicht.
Setzt einen neuen Wegpunkt, der als Rückgängigmachungspunkt oder Wiederholungspunkt verwendet werden kann.
Beginnt die Aufzeichnung von Änderungen am Datenmodell.
Rückgängig macht die letzte ausgeführte Aktion, für die es einen Waypoint gibt.
Ereignisse
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Ausgelöst, wenn der Benutzer eine Actionabgeschlossen hat. Die Argumente kommen von TryBeginRecording() und FinishRecording() .
Ausgelöst, wenn der Benutzer eine Actionbeginnt. Die Argumente kommen von TryBeginRecording() .
Ausgelöst, wenn der Benutzer die Rückgängigmachungsbefehle umkehrt. Waypoint beschreibt die Art der Aktion, die wieder ausgeführt wurde.
Ausgelöst, wenn der Benutzer eine Aktion im Studio annulliert. Waypoint beschreibt die Art der Aktion, die annulliert wurde.
Eigenschaften
Methoden
FinishRecording
Parameter
Identifiziert die Aufnahme aus der vorherigen Anrufe zu TryBeginRecording() . Wenn die Operation ist Enum.ChangeHistoryService.FinishRecordingOperation.Cancel , wird dieser Wert ignoriert, und das Aufnahme wird durch Kontext bestimmt.
Gibt die Operation an, die ausgeführt werden soll.
Optionale Tabelle von Werten, die an OnFinishRecording weitergegeben werden.
Rückgaben
Code-Beispiele
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
Gibt zurück, ob es Aktionen gibt, die wiederholt werden können, und, wenn es so ist, gibt es die letzte davon zurück.
Rückgaben
GetCanUndo
Gibt zurück, ob es Aktionen gibt, die rückgängig gemacht werden können, und, wenn es so ist, gibt es die letzte davon zurück.
Rückgaben
Redo
Führt die letzte Aktion aus, die rückgängig gemacht wurde.
Rückgaben
ResetWaypoints
Löscht die Geschichte, so dass alle Rückgängig/Wiederholung Waypoints entfernt werden.
Rückgaben
SetEnabled
Setzt, ob der ChangeHistoryService aktiviert ist oder nicht. Wenn auf false gesetzt, wird die Rückgängigmachungs-/Wiederholungsliste geleert und nicht erneut gefüllt. Wenn auf true erneut gesetzt, wird die ursprüngliche Liste nicht wiederhergestellt, sondern weitere Operationen an der Liste angehängt
Parameter
Rückgaben
SetWaypoint
Diese Methode wird in Kürze deprecated soon in favor von TryBeginRecording() .
ChangeHistoryService verfolgt die Geschichte des Plugins als Stream von Eigenschaftsänderungen. SetWaypoint() erstellt einen Schnitt in diese Eigenschaftsänderungen-Strom, damit die Rückgängigmachungs- und Wiederholungsaktionen wissen, wo sie aufhören.
Nach der Konvention müssen Benutzer-in-Studio-Aktionen müssen aufrufen, nachdem sie ihre Reihe von Änderungen an der Erlebnisabgeschlossen haben. SetWaypoint() nachdem sie ihre Reihe von Änderungen abgeschlossen haben, nach Class.ChangeHistoryService:SetWaypoint()|SetWaypoint() aufgerufen werden, um
Parameter
Rückgaben
Code-Beispiele
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
Diese Methode beginnt eine Aufzeichnung, um Änderungen am Modellzu verfolgen. Sie müssen , sie vor dem Ändern zu rufen, um zukünftige Warnungen oder Fehler zu vermeiden.
Wenn das Aufzeichnung abgeschlossen ist, rufen Sie FinishRecording() mit dem zurückgegebenen Aufzeichnung-Identifikator auf, um das Aufzeichnung abzuschließen und den Rückgängigmachen/Wiederholen-Stack zu aktualisieren.
Diese Methode wird nil zurückgeben, wenn sie aufnahmen nicht starten kann. Aufnahmen fehlen, wenn das Plugin bereits ein Aufnahme in Arbeit hat, oder wenn der Benutzer in Run oder Play -Modus ist.
Du kannst IsRecordingInProgress() verwenden, um den Status der Aufnahme des Plug-inzu überprüfen.
Parameter
Name der Aktion, die für Log- und Codierungszwecke geeignet ist.
Name der Aktion, die ausgeführt wird, um dem Benutzer angezeigt zu werden.
Rückgaben
Code-Beispiele
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
Rückgängig macht die letzte ausgeführte Aktion, für die es einen Waypoint gibt.
Rückgaben
Ereignisse
OnRecordingFinished
Parameter
Name der Aktion, die für Log- und Codierungszwecke geeignet ist.
Name der Aktion, die ausgeführt wird, um dem Benutzer angezeigt zu werden.
Die Kennung für die Aufnahme.
Optionale Tabelle von FinishOperation() .
OnRecordingStarted
Parameter
Name der Aktion, die für Log- und Codierungszwecke geeignet ist.
Name der Aktion, die ausgeführt wird, um dem Benutzer angezeigt zu werden.
OnRedo
Ausgelöst, wenn der Benutzer die Rückgängigmachungsbefehle umkehrt. Waypoint beschreibt die Art der Aktion, die wieder ausgeführt wurde.
Parameter
OnUndo
Ausgelöst, wenn der Benutzer eine Aktion im Studio annulliert. Waypoint beschreibt die Art der Aktion, die annulliert wurde.