ChangeHistoryService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
I sviluppatori di plugin devono usare Class.ChangeHistoryService per dire a Studio come annullare e ripetere le modifiche che i loro plugin apportano alle esperienze registrando. Prima di apportare modifiche, un plugin chiama Class.ChangeHistoryService:TryBeginRecording(), ricordando l'identificatore che assegna, quindi dopo aver apportato
I plugin possono anche invocare programmaticamente un annullamento o una ripetizione attraverso ChangeHistoryService:Undo() o ChangeHistoryService:Redo() .
ChangeHistoryService non è abilitato in tempo Tempo esecuzione, quindi chiamare i suoi metodi in un'esperienza in esecuzione non ha effetto.
Sommario
Proprietà
Metodi
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
Comunica a Studio che il registrazione identificata è finita e 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.
Svuota la cronologia, causando la rimozione di tutti i punti di interruzione/ripetizione.
Imposta se o no il ChangeHistoryService è abilitato.
Imposta un nuovo punto di interesse che può essere utilizzato come punto di annullamento o ripetizione.
Inizia a tracciare le modifiche apportate al modello di dati in un registro.
Annulla l'ultima azione intrapresa, per la quale esiste un punto di interruzione.
Eventi
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Si attiva quando l'utente completa un'azione. I parametri vengono dal TryBeginRecording() e FinishRecording() .
Si attiva quando l'utente inizia un'azione. I parametri vengono dal TryBeginRecording() .
Si attiva quando l'utente inverte il comando di annullamento. Waypoint descrive il tipo di azione che è stata ripetuta.
Si attiva quando l'utente annulla un'azione in studio. Waypoint descrive il tipo di azione che è stata annullata.
Proprietà
Metodi
FinishRecording
Parametri
Identifica il registro da chiamata precedente a TryBeginRecording() . Se l'operazione è Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, questo valore viene ignorato e il registro viene determinato dal contesto.
Specifica l'operazione da eseguire.
Opzionale tavola di valori da passare a OnFinishRecording .
Restituzioni
Campioni di codice
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
Svuota la cronologia, causando la rimozione di tutti i punti di interruzione/ripetizione.
Restituzioni
SetEnabled
Imposta se è abilitato o meno ChangeHistoryService. Quando è impostato su false, la lista undo/redo viene cancellata e non viene riempita. Quando è impostato su true again, la lista originale non viene ripristinata, ma le operazioni successive vengono aggiunte alla lista una volta di più
Parametri
Restituzioni
SetWaypoint
Questo metodo sarà presto deprecato in favore di TryBeginRecording() .
ChangeHistoryService traccia la cronologia dei plugin come flusso di cambiamenti di proprietà. SetWaypoint() crea un taglio in quella cronologia dei plugin in modo che le azioni annullare e ripetere sappiano dove fermarsi.
Per convenzione, le azioni chiamate dagli utenti in Studio devono chiamare SetWaypoint()dopo aver completato il loro set di modifiche all'esperienza. Chiamarlo 1> prima1> di un set di modifiche potrebbe pulire un altro Collegareche non funziona correttamente,
Parametri
Restituzioni
Campioni di codice
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 un registro per tracciare le modifiche al modello di dati. Devi chiamarlo prima di apportare modifiche per evitare future avvertenze o errori.
Quando il registrazione è completata, chiami FinishRecording() con l'identificatore di registrazione restituito per completare il registrazione e aggiornare lo stack di annullamento/ripetizione.
Questo metodo restituirà nil se non riesce a iniziare un'registrazione. Le registrazioni falliscono se il plugin ha già un'registrazione in corso, o se l'utente è in Run o Play mode.
Puoi usare IsRecordingInProgress() per controllare lo stato di registrazione del Collegare.
Parametri
Nome dell'azione in esecuzione adatto per scopi di registrazione e codifica.
Nome dell'azione che viene eseguita per mostrare all'utente.
Restituzioni
Campioni di codice
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 interruzione.
Restituzioni
Eventi
OnRecordingFinished
Parametri
Nome dell'azione in esecuzione adatto per scopi di registrazione e codifica.
Nome dell'azione che viene eseguita per mostrare all'utente.
L'identificatore per la registrazione.
Tavola opzionale da FinishOperation() .
OnRecordingStarted
Parametri
Nome dell'azione in esecuzione adatto per scopi di registrazione e codifica.
Nome dell'azione che viene eseguita per mostrare all'utente.
OnRedo
Si attiva quando l'utente inverte il comando di annullamento. Waypoint descrive il tipo di azione che è stata ripetuta.
Parametri
OnUndo
Si attiva quando l'utente annulla un'azione in studio. Waypoint descrive il tipo di azione che è stata annullata.