Lớp công cụ
ChangeHistoryService
*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?):() |
IsRecordingInProgress(identifier: string?):boolean |
Redo():() |
ResetWaypoints():() |
SetEnabled(state: boolean):() |
SetWaypoint(name: string):() |
TryBeginRecording(name: string,displayName: string?):string? |
Undo():() |
Sự Kiện
OnRecordingFinished(name: string,displayName: string?,identifier: string?,operation: Enum.FinishRecordingOperation,finalOptions: Dictionary?):RBXScriptSignal |
OnRecordingStarted(name: string,displayName: string?):RBXScriptSignal |
OnRedo(waypoint: string):RBXScriptSignal |
OnUndo(waypoint: string):RBXScriptSignal |
Tài Liệu Tham Khảo API
Phương Pháp
FinishRecording
ChangeHistoryService:FinishRecording(
):()
Tham Số
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)IsRecordingInProgress
Redo
ChangeHistoryService:Redo():()
Lợi Nhuận
()
ResetWaypoints
ChangeHistoryService:ResetWaypoints():()
Lợi Nhuận
()
SetWaypoint
Tham Số
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
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
ChangeHistoryService:Undo():()
Lợi Nhuận
()
Sự Kiện
OnRecordingFinished
ChangeHistoryService.OnRecordingFinished(
name:string, displayName:string?, identifier:string?, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
Tham Số
OnRecordingStarted