Apprendre
Classe de moteur
ChangeHistoryService
Création impossible
Service

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Résumé
Événements
OnRecordingFinished(name: string,displayName: string?,identifier: string?,operation: Enum.FinishRecordingOperation,finalOptions: Dictionary?):RBXScriptSignal
Membres hérités

Référence API
Méthodes
FinishRecording
Sécurité des plugins
ChangeHistoryService:FinishRecording(
identifier:string, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
):()
Paramètres
identifier:string
finalOptions:Dictionary?
Retours
()
Échantillons de code
ChangeHistoryService:EssayerDeCommencerLEnregistrement
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Plugin Exemple")
local button = toolbar:CreateButton("Neoniser", "", "")
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
-- Rien à faire.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Définir la sélection sur néon")
if not recording then
-- Gérer l'erreur ici. Cela indique que votre plugin a commencé un enregistrement précédent
-- et ne l'a jamais terminé. Vous ne pouvez avoir qu'un seul enregistrement
-- par plugin actif à la fois.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

GetCanRedo
Sécurité des plugins
ChangeHistoryService:GetCanRedo():Tuple
Retours

GetCanUndo
Sécurité des plugins
ChangeHistoryService:GetCanUndo():Tuple
Retours

IsRecordingInProgress
Sécurité des plugins
ChangeHistoryService:IsRecordingInProgress(identifier:string?):boolean
Paramètres
identifier:string?
Retours

Redo
Sécurité des plugins
ChangeHistoryService:Redo():()
Retours
()

ResetWaypoints
Sécurité des plugins
ChangeHistoryService:ResetWaypoints():()
Retours
()

SetEnabled
Sécurité des plugins
ChangeHistoryService:SetEnabled(state:boolean):()
Paramètres
state:boolean
Retours
()

SetWaypoint
Sécurité des plugins
ChangeHistoryService:SetWaypoint(name:string):()
Paramètres
name:string
Retours
()
Échantillons de code
Service d'historique des modifications : Définir un point de repère
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Exemple de Plugin")
local button = toolbar:CreateButton("Mettez-le en néon", "", "")
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
-- Appeler SetWaypoint avant le travail ne causera pas de problèmes, cependant
-- c'est redondant, seule l'appel APRÈS le travail est nécessaire.
--ChangeHistoryService:SetWaypoint("Définir la sélection en néon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Appeler SetWaypoint APRÈS avoir terminé le travail
ChangeHistoryService:SetWaypoint("Définir la sélection en néon")
else
-- Rien à faire. Vous n'avez pas besoin d'appeler SetWaypoint dans le cas où
-- l'action n'a pas entraîné de modifications dans l'expérience.
end
end)

TryBeginRecording
Sécurité des plugins
ChangeHistoryService:TryBeginRecording(
name:string, displayName:string?
Paramètres
name:string
displayName:string?
Retours
Échantillons de code
ChangeHistoryService:EssayerDeCommencerLEnregistrement
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Plugin Exemple")
local button = toolbar:CreateButton("Neoniser", "", "")
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
-- Rien à faire.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Définir la sélection sur néon")
if not recording then
-- Gérer l'erreur ici. Cela indique que votre plugin a commencé un enregistrement précédent
-- et ne l'a jamais terminé. Vous ne pouvez avoir qu'un seul enregistrement
-- par plugin actif à la fois.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Undo
Sécurité des plugins
ChangeHistoryService:Undo():()
Retours
()

Événements
OnRecordingFinished
Sécurité des plugins
ChangeHistoryService.OnRecordingFinished(
name:string, displayName:string?, identifier:string?, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
Paramètres
name:string
displayName:string?
identifier:string?
finalOptions:Dictionary?

OnRecordingStarted
Sécurité des plugins
ChangeHistoryService.OnRecordingStarted(
name:string, displayName:string?
Paramètres
name:string
displayName:string?

OnRedo
Sécurité des plugins
ChangeHistoryService.OnRedo(waypoint:string):RBXScriptSignal
Paramètres
waypoint:string

OnUndo
Sécurité des plugins
ChangeHistoryService.OnUndo(waypoint:string):RBXScriptSignal
Paramètres
waypoint:string

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.