ChangeHistoryService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza

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

Metodi

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
    Sicurezza Plugin

    Comunica a Studio che la registrazione identificata è finita e per eseguire l'operazione finale per completare la registrazione.

  • Sicurezza Plugin

    Restituisce se ci sono azioni che possono essere ripetute e, se ci sono, restituisce l'ultima di esse.

  • Sicurezza Plugin

    Restituisce se ci sono azioni che possono essere annullate e, se ci sono, restituisce l'ultima di esse.

  • Sicurezza Plugin
  • Redo():()
    Sicurezza Plugin

    Esegue l'ultima azione che è stata annullata.

  • Sicurezza Plugin

    Cancella la storia, causando la rimozione di tutti i punti di ritorno/ripristino.

  • SetEnabled(state : boolean):()
    Sicurezza Plugin

    Imposta se il ChangeHistoryService è abilitato o meno.

  • SetWaypoint(name : string):()
    Sicurezza Plugin

    Imposta un nuovo punto di partenza che può essere utilizzato come punto di annullamento o ripetizione.

  • TryBeginRecording(name : string,displayName : string?):string?
    Sicurezza Plugin

    Inizia a monitorare i cambiamenti apportati al modello di dati in una registrazione.

  • Undo():()
    Sicurezza Plugin

    Annulla l'ultima azione intrapresa, per la quale esiste un punto di passaggio.

Eventi

Proprietà

Metodi

FinishRecording

()
Sicurezza Plugin

Parametri

identifier: string

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.

Valore predefinito: ""

Specifica l'operazione da eseguire.

Valore predefinito: ""
finalOptions: Dictionary

Tabella opzionale di valori da passare a OnFinishRecording .

Valore predefinito: ""

Restituzioni

()

Campioni di codice

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

ChangeHistoryService:TryBeginRecording

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

Sicurezza Plugin

Restituisce se ci sono azioni che possono essere ripetute e, se ci sono, restituisce l'ultima di esse.


Restituzioni

GetCanUndo

Sicurezza Plugin

Restituisce se ci sono azioni che possono essere annullate e, se ci sono, restituisce l'ultima di esse.


Restituzioni

IsRecordingInProgress

Sicurezza Plugin

Parametri

identifier: string
Valore predefinito: ""

Restituzioni

Redo

()
Sicurezza Plugin

Esegue l'ultima azione che è stata annullata.


Restituzioni

()

ResetWaypoints

()
Sicurezza Plugin

Cancella la storia, causando la rimozione di tutti i punti di ritorno/ripristino.


Restituzioni

()

SetEnabled

()
Sicurezza Plugin

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

state: boolean
Valore predefinito: ""

Restituzioni

()

SetWaypoint

()
Sicurezza Plugin

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

name: string
Valore predefinito: ""

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.

ChangeHistoryService:SetWaypoint

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

Sicurezza Plugin

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

name: string

Nome dell'azione che viene eseguita adatta per scopi di registrazione e codifica.

Valore predefinito: ""
displayName: string

Nome dell'azione che viene eseguita per visualizzare all'utente.

Valore predefinito: ""

Restituzioni

Campioni di codice

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

ChangeHistoryService:TryBeginRecording

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

()
Sicurezza Plugin

Annulla l'ultima azione intrapresa, per la quale esiste un punto di passaggio.


Restituzioni

()

Eventi

OnRecordingFinished

Sicurezza Plugin

Parametri

name: string

Nome dell'azione che viene eseguita adatta per scopi di registrazione e codifica.

displayName: string

Nome dell'azione che viene eseguita per visualizzare all'utente.

identifier: string

L'identificatore per la registrazione.

finalOptions: Dictionary

Tavolo opzionale da FinishOperation() .


OnRecordingStarted

Sicurezza Plugin

Parametri

name: string

Nome dell'azione che viene eseguita adatta per scopi di registrazione e codifica.

displayName: string

Nome dell'azione che viene eseguita per visualizzare all'utente.


OnRedo

Sicurezza Plugin

Spedito quando l'utente inverte il comando annulla. Waypoint descrive l'azione di tipo che è stata ripetuta.

Parametri

waypoint: string

OnUndo

Sicurezza Plugin

Spedito quando l'utente annulla un'azione in studio. Waypoint descrive l'azione di tipo che è stata annullata.

Parametri

waypoint: string