ChangeHistoryService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Gli sviluppatori di plugin devono usare ChangeHistoryService per dire a Studio come annullare e ripetere le modifiche che i loro plugin fanno alle esperienze registrando.Prima di apportare modifiche, un plugin chiama ChangeHistoryService:TryBeginRecording() , ricordando l'identificatore che assegna, quindi dopo aver apportato modifiche, il plugin chiama ChangeHistoryService:FinishRecording() per completare la registrazione.
I plugin possono anche invocare programmaticamente un annullamento o un ripristino attraverso ChangeHistoryService:Undo() o ChangeHistoryService:Redo() .
ChangeHistoryService non è abilitato al momento dell'tempo esecuzione, quindi chiamare i suoi metodi in un'esperienza in esecuzione non ha alcun effetto.
Sommario
Proprietà
Metodi
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
Comunica a Studio che la registrazione identificata è finita e per eseguire l'operazione finale per completare la registrazione.
Restituisce se ci sono azioni che possono essere ripetute e, se ci sono, restituisce l'ultima di esse.
Restituisce se ci sono azioni che possono essere annullate e, se ci sono, restituisce l'ultima di esse.
Esegue l'ultima azione che è stata annullata.
Cancella la storia, causando la rimozione di tutti i punti di ritorno/ripristino.
Imposta se il ChangeHistoryService è abilitato o meno.
Imposta un nuovo punto di partenza che può essere utilizzato come punto di annullamento o ripetizione.
Inizia a monitorare i cambiamenti apportati al modello di dati in una registrazione.
Annulla l'ultima azione intrapresa, per la quale esiste un punto di passaggio.
Eventi
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Sparato quando l'utente completa un'azione. I parametri provengono da TryBeginRecording() e FinishRecording().
Sparato quando l'utente inizia un'azione. I parametri provengono da TryBeginRecording() .
Spedito quando l'utente inverte il comando annulla. Waypoint descrive l'azione di tipo che è stata ripetuta.
Spedito quando l'utente annulla un'azione in studio. Waypoint descrive l'azione di tipo che è stata annullata.
Proprietà
Metodi
FinishRecording
Parametri
Identifica la registrazione dalla chiamata precedente a TryBeginRecording() .Se l'operazione è Enum.ChangeHistoryService.FinishRecordingOperation.Cancel , questo valore viene ignorato e la registrazione viene determinata dal contesto.
Specifica l'operazione da eseguire.
Tabella opzionale di valori da passare a OnFinishRecording .
Restituzioni
Campioni di codice
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
Restituisce se ci sono azioni che possono essere ripetute e, se ci sono, restituisce l'ultima di esse.
Restituzioni
GetCanUndo
Restituisce se ci sono azioni che possono essere annullate e, se ci sono, restituisce l'ultima di esse.
Restituzioni
Redo
Esegue l'ultima azione che è stata annullata.
Restituzioni
ResetWaypoints
Cancella la storia, causando la rimozione di tutti i punti di ritorno/ripristino.
Restituzioni
SetEnabled
Imposta se il ChangeHistoryService è abilitato o meno.Quando è impostato su false, la lista annullamento/ripristino viene cancellata e non si ripopola.Quando viene nuovamente impostata su vero, la lista originale non viene ripristinata, ma ulteriori operazioni vengono aggiunte alla lista ancora una volta
Parametri
Restituzioni
SetWaypoint
Questo metodo sarà presto deprecato a favore di TryBeginRecording().
ChangeHistoryService traccia la storia del plugin come flusso di modifiche di proprietà.SetWaypoint() crea un taglio in quel flusso di modifiche di proprietà in modo che le azioni annulla e ripristina sappiano dove fermarsi.
Per convenzione, le azioni invocate dall'utente in Studio devono chiamare SetWaypoint()dopo aver completato il loro set di modifiche all'esperienza.Chiamarlo prima di un insieme di modifiche può pulire un altro plugin che non è riuscito a impostare un punto di passaggio, ma è un motivo povero per giustificare tale utilizzo nel tuo Collegare.
Parametri
Restituzioni
Campioni di codice
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
Questo metodo inizia una registrazione per tracciare le modifiche al modello di dati.Devi chiamarlo prima di apportare modifiche per evitare avvertimenti o errori futuri .
Quando la registrazione è completata, chiami FinishRecording() con l'identificatore della registrazione restituito per completare la registrazione e aggiornare lo stack annullamento/rialzo.
Questo metodo restituirà nil se non riesce a iniziare una registrazione.Le registrazioni falliscono se il plugin ha già una registrazione in corso, o se l'utente è in Esegui o Gioca modalità.
Puoi usare IsRecordingInProgress() per controllare lo stato di registrazione del Collegare.
Parametri
Nome dell'azione che viene eseguita adatta per scopi di registrazione e codifica.
Nome dell'azione che viene eseguita per visualizzare all'utente.
Restituzioni
Campioni di codice
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
Annulla l'ultima azione intrapresa, per la quale esiste un punto di passaggio.
Restituzioni
Eventi
OnRecordingFinished
Parametri
Nome dell'azione che viene eseguita adatta per scopi di registrazione e codifica.
Nome dell'azione che viene eseguita per visualizzare all'utente.
L'identificatore per la registrazione.
Tavolo opzionale da FinishOperation() .
OnRecordingStarted
Parametri
Nome dell'azione che viene eseguita adatta per scopi di registrazione e codifica.
Nome dell'azione che viene eseguita per visualizzare all'utente.
OnRedo
Spedito quando l'utente inverte il comando annulla. Waypoint descrive l'azione di tipo che è stata ripetuta.
Parametri
OnUndo
Spedito quando l'utente annulla un'azione in studio. Waypoint descrive l'azione di tipo che è stata annullata.