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ã
ChangeHistoryService:TryBeginRecording
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Ví dụ Plugin")
local button = toolbar:CreateButton("Làm sáng lên", "", "")
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 cho thấy 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ã
ChangeHistoryService:SetWaypoint
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Ví dụ Plugin")
local button = toolbar:CreateButton("Làm cho nó phát sáng", "", "")
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ì, tuy nhiên
-- nó là thừa, chỉ cần gọi SAU khi làm việc là cần thiết.
--ChangeHistoryService:SetWaypoint("Đặt lựa chọn thành phát sáng")
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 phát sáng")
else
-- Không có gì để làm. Bạn không cần gọi SetWaypoint trong trường hợp mà
-- hành động không tạo ra bất kỳ thay đổi nào cho 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ã
ChangeHistoryService:TryBeginRecording
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Ví dụ Plugin")
local button = toolbar:CreateButton("Làm sáng lên", "", "")
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 cho thấy 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.