学习
引擎类
ChangeHistoryService
无法创建
服务

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处


概要
继承成员

API 参考
方法
FinishRecording
插件安全性
ChangeHistoryService:FinishRecording(
identifier:string, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
):()
参数
identifier:string
finalOptions:Dictionary?
返回
()
代码示例
更改历史服务:尝试开始录制
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("示例插件")
local button = toolbar:CreateButton("发光", "", "")
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
-- 没有什么可做。
return
end
local recording = ChangeHistoryService:TryBeginRecording("将选择设置为发光")
if not recording then
-- 在这里处理错误。这表示您的插件开始了以前的
-- 录制并且从未完成。每个插件只能同时激活一个录制。
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

GetCanRedo
插件安全性
ChangeHistoryService:GetCanRedo():Tuple
返回

GetCanUndo
插件安全性
ChangeHistoryService:GetCanUndo():Tuple
返回

IsRecordingInProgress
插件安全性
ChangeHistoryService:IsRecordingInProgress(identifier:string?):boolean
参数
identifier:string?
返回

Redo
插件安全性
ChangeHistoryService:Redo():()
返回
()

ResetWaypoints
插件安全性
ChangeHistoryService:ResetWaypoints():()
返回
()

SetEnabled
插件安全性
ChangeHistoryService:SetEnabled(state:boolean):()
参数
state:boolean
返回
()

SetWaypoint
插件安全性
ChangeHistoryService:SetWaypoint(name:string):()
参数
name:string
返回
()
代码示例
更改历史服务:设置路径
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("示例插件")
local button = toolbar:CreateButton("霓虹灯效果", "", "")
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
-- 在工作之前调用 SetWaypoint 不会造成任何问题,然而
-- 这是多余的,仅在工作之后的调用是必要的。
--ChangeHistoryService:SetWaypoint("设置选定项为霓虹灯")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- 在完成工作后调用 SetWaypoint
ChangeHistoryService:SetWaypoint("将选定项设置为霓虹灯")
else
-- 没有什么可做的。如果操作没有对体验进行任何更改,
-- 你不需要在这种情况下调用 SetWaypoint。
end
end)

TryBeginRecording
插件安全性
ChangeHistoryService:TryBeginRecording(
name:string, displayName:string?
参数
name:string
displayName:string?
返回
代码示例
更改历史服务:尝试开始录制
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("示例插件")
local button = toolbar:CreateButton("发光", "", "")
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
-- 没有什么可做。
return
end
local recording = ChangeHistoryService:TryBeginRecording("将选择设置为发光")
if not recording then
-- 在这里处理错误。这表示您的插件开始了以前的
-- 录制并且从未完成。每个插件只能同时激活一个录制。
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Undo
插件安全性
ChangeHistoryService:Undo():()
返回
()

活动
OnRecordingFinished
插件安全性
ChangeHistoryService.OnRecordingFinished(
name:string, displayName:string?, identifier:string?, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
参数
name:string
displayName:string?
identifier:string?
finalOptions:Dictionary?

OnRecordingStarted
插件安全性
ChangeHistoryService.OnRecordingStarted(
name:string, displayName:string?
参数
name:string
displayName:string?

OnRedo
插件安全性
ChangeHistoryService.OnRedo(waypoint:string):RBXScriptSignal
参数
waypoint:string

OnUndo
插件安全性
ChangeHistoryService.OnUndo(waypoint:string):RBXScriptSignal
参数
waypoint:string

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。