Ghi chú phát hành
Học
Lớp công cụ
ChangeHistoryService
Không Thể Tạo
Dịch Vụ

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Tóm Tắt
Phương Pháp
FinishRecording(identifier: string,operation: Enum.FinishRecordingOperation,finalOptions: Dictionary?):()
Redo():()
SetEnabled(state: boolean):()
TryBeginRecording(name: string,displayName: string?):string?
Undo():()
Sự Kiện
OnRecordingFinished(name: string,displayName: string?,identifier: string?,operation: Enum.FinishRecordingOperation,finalOptions: Dictionary?):RBXScriptSignal
Thành viên kế thừa

Tài Liệu Tham Khảo API
Phương Pháp
FinishRecording
Bảo Mật Plugin
ChangeHistoryService:FinishRecording(
identifier:string, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
):()
Tham Số
identifier:string
finalOptions:Dictionary?
Lợi Nhuận
()
Mẫu mã
Dịch vụ Lịch sử Thay đổi: Thử Bắt đầu Ghi lại
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Plugin Ví dụ")
local button = toolbar:CreateButton("Làm neon", "", "")
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
-- Không có gì để làm.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Đặt lựa chọn thành neon")
if not recording then
-- Xử lý lỗi ở đây. Điều này chỉ ra rằng plugin của bạn đã bắt đầu một bản ghi trước đó
-- và chưa hoàn thành. Bạn chỉ có thể có một bản ghi
-- cho mỗi plugin hoạt động tại một thời điểm.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

GetCanRedo
Bảo Mật Plugin
ChangeHistoryService:GetCanRedo():Tuple
Lợi Nhuận

GetCanUndo
Bảo Mật Plugin
ChangeHistoryService:GetCanUndo():Tuple
Lợi Nhuận

IsRecordingInProgress
Bảo Mật Plugin
ChangeHistoryService:IsRecordingInProgress(identifier:string?):boolean
Tham Số
identifier:string?
Lợi Nhuận

Redo
Bảo Mật Plugin
ChangeHistoryService:Redo():()
Lợi Nhuận
()

ResetWaypoints
Bảo Mật Plugin
ChangeHistoryService:ResetWaypoints():()
Lợi Nhuận
()

SetEnabled
Bảo Mật Plugin
ChangeHistoryService:SetEnabled(state:boolean):()
Tham Số
state:boolean
Lợi Nhuận
()

SetWaypoint
Bảo Mật Plugin
ChangeHistoryService:SetWaypoint(name:string):()
Tham Số
name:string
Lợi Nhuận
()
Mẫu mã
Dịch vụLịchSửThayĐổi:ĐặtĐiểmDừng
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Ví dụ Plugin")
local button = toolbar:CreateButton("Neon hóa", "", "")
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
-- Gọi SetWaypoint trước khi làm việc sẽ không gây ra vấn đề gì, nhưng
-- nó là thừa, chỉ cần gọi SAU khi làm việc.
--ChangeHistoryService:SetWaypoint("Đặt lựa chọn thành neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Gọi SetWaypoint SAU khi hoàn thành công việc
ChangeHistoryService:SetWaypoint("Đặt lựa chọn thành neon")
else
-- Không có gì để làm. Bạn không cần gọi SetWaypoint trong trường hợp
-- hành động không dẫn đến bất kỳ thay đổi nào trong trải nghiệm.
end
end)

TryBeginRecording
Bảo Mật Plugin
ChangeHistoryService:TryBeginRecording(
name:string, displayName:string?
Tham Số
name:string
displayName:string?
Lợi Nhuận
Mẫu mã
Dịch vụ Lịch sử Thay đổi: Thử Bắt đầu Ghi lại
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Plugin Ví dụ")
local button = toolbar:CreateButton("Làm neon", "", "")
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
-- Không có gì để làm.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Đặt lựa chọn thành neon")
if not recording then
-- Xử lý lỗi ở đây. Điều này chỉ ra rằng plugin của bạn đã bắt đầu một bản ghi trước đó
-- và chưa hoàn thành. Bạn chỉ có thể có một bản ghi
-- cho mỗi plugin hoạt động tại một thời điểm.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Undo
Bảo Mật Plugin
ChangeHistoryService:Undo():()
Lợi Nhuận
()

Sự Kiện
OnRecordingFinished
Bảo Mật Plugin
ChangeHistoryService.OnRecordingFinished(
name:string, displayName:string?, identifier:string?, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
Tham Số
name:string
displayName:string?
identifier:string?
finalOptions:Dictionary?

OnRecordingStarted
Bảo Mật Plugin
ChangeHistoryService.OnRecordingStarted(
name:string, displayName:string?
Tham Số
name:string
displayName:string?

OnRedo
Bảo Mật Plugin
ChangeHistoryService.OnRedo(waypoint:string):RBXScriptSignal
Tham Số
waypoint:string

OnUndo
Bảo Mật Plugin
ChangeHistoryService.OnUndo(waypoint:string):RBXScriptSignal
Tham Số
waypoint:string

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.