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.
Các nhà phát triển plugin phải dùng ChangeHistoryService để nói với Studio làm thế nào để huỷ và làm lại những thay đổi mà các plugin của họ đưa vào kinh nghiệm bằng cách g
Các plugin cũng có thể gọi chương trình tự động huỷ hoặc làm lại qua ChangeHistoryService:Undo() hoặc ChangeHistoryService:Redo() .
ChangeHistoryService không được kích hoạt trong thời gian thực, vì vậy gọi các phương thức của nó trong một trải nghiệm chạy có hiệu quả không.
Tóm Tắt
Phương Pháp
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
Giao tiếp với Studio rằng hồ sơ ghi đã xong và đưa ra hoạt động cuối cùng để hoàn thành hồ sơ ghi.
Quay về có phải thực hiện lại những hành động nào và, nếu có, quay về cuối cùng của chúng.
Quay về có phải có hành động có thể huỷ, và, nếu có, quay về cuối cùng của chúng.
Thi hành hành động cuối cùng đã bị huỷ.
Xóa lịch sử, khiến tất cả điểm dừng lại / thay đổi được xóa.
Đặt whether hoặc không ChangeHistoryService được bật.
Đặt một điểm dừng mới có thể được sử dụng như một điểm dừng lại hoặc thực hiện lại.
Bắt đầu theo dõi những thay đổi đã thực hiện trên mô hình dữ liệu thành một hồ sơ.
Huỷ hành động cuối cùng đã thực hiện, cho đó có một điểm dừng.
Sự Kiện
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Được kích hoạt khi người dùng hoàn thành một hành động. Các biến đến từ TryBeginRecording() và FinishRecording() .
Được kích hoạt khi người dùng bắt đầu một hành động. Các biến đến từ TryBeginRecording() .
Đã kích hoạt khi người dùng ngược lại lệnh huỷ. Waypoint mô tả loại hành động đã được thực hiện lại.
Được kích hoạt khi người dùng thực hiện một hành động nào đó trong studio. Waypoint mô tả loại hành động đã được thực hiện.
Thuộc Tính
Phương Pháp
FinishRecording
Tham Số
Xác định cuộc gọi đã ghi lại từ cuộc gọi trước đó để TryBeginRecording() . Nếu hoạt động là Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, giá trị này được bỏ qua và cuộc gọi được xác định bởi context.
Chỉ định hoạt động để thực hiện.
Cột dữ liệu bắt buộc để gửi đến OnFinishRecording .
Lợi Nhuận
Mẫu mã
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
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
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
GetCanRedo
Quay về có phải thực hiện lại những hành động nào và, nếu có, quay về cuối cùng của chúng.
Lợi Nhuận
GetCanUndo
Quay về có phải có hành động có thể huỷ, và, nếu có, quay về cuối cùng của chúng.
Lợi Nhuận
Redo
Thi hành hành động cuối cùng đã bị huỷ.
Lợi Nhuận
ResetWaypoints
Xóa lịch sử, khiến tất cả điểm dừng lại / thay đổi được xóa.
Lợi Nhuận
SetEnabled
Đặt whether or not the ChangeHistoryService is enabled. When set to false, the undo/redo list is cleared, and does not repopulate. When set to true again, the original list is not restored, but further operations append to the list once more
Tham Số
Lợi Nhuận
SetWaypoint
Phương thức này sẽ được bị lỗi sớm vì lợi ích của TryBeginRecording() .
ChangeHistoryService theo dõi lịch sử plugin như một dòng thay đổi trong các thay đổi tính thức. SetWaypoint() tạo ra một cắt giảm trong dòng thay đổi tính thức để cho phép các hành động huỷ và làm lại biết nơi để dừng lại.
Theo nguyên tắc, các hành động gọi người dùng trong Studio phải có thể gọi Class.ChangeHistoryService:SetWaypoint()|SetWaypoint() sau khi hoàn thành set thay đổi của họ cho trải nghiệm. Gọi nó sau k
Tham Số
Lợi Nhuận
Mẫu mã
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
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
-- Calling SetWaypoint before the work will not cause any issues, however
-- it is redundant, only the call AFTER the work is needed.
--ChangeHistoryService:SetWaypoint("Setting selection to neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Call SetWaypoint AFTER completing the work
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- Nothing to do. You do not need to call SetWaypoint in the case where
-- the action did not end up making any changes to the experience.
end
end)
TryBeginRecording
Phương thức này bắt đầu ghi lại các thay đổi trong mô hình dữ liệu. Bạn phải gọi nó trước khi thực hiện các thay đổi để tránh các cảnh báo hoặc lỗi tương lai.
Khi ghi lại được hoàn thành, bạn gọi FinishRecording() với xác nhận người dùng đã quay lại để hoàn thành ghi lại và cập nhật hàng đợi huỷ/thực hiện lại.
Phương thức này sẽ trả lại nil nếu nó không thể bắt đầu một cuộc ghi. Cuộc ghi thất bại nếu plugin đã có một cuộc ghi đang diễn ra, hoặc nếu người dùng đang ở trong Chạy hoặc Chơi chế độ.
Bạn có thể sử dụng IsRecordingInProgress() để kiểm tra trạng thái ghi lại của plugin.
Tham Số
Tên hành động đang thực hiện phù hợp cho mục đích lưu trữ và lập trình.
Tên hành động đang thực hiện để hiển thị cho người dùng.
Lợi Nhuận
Mẫu mã
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
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
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Undo
Huỷ hành động cuối cùng đã thực hiện, cho đó có một điểm dừng.
Lợi Nhuận
Sự Kiện
OnRecordingFinished
Tham Số
Tên hành động đang thực hiện phù hợp cho mục đích lưu trữ và lập trình.
Tên hành động đang thực hiện để hiển thị cho người dùng.
Nhận dạng cho cuộc gọi.
Bảng tùy chọn từ FinishOperation() .
OnRecordingStarted
Tham Số
Tên hành động đang thực hiện phù hợp cho mục đích lưu trữ và lập trình.
Tên hành động đang thực hiện để hiển thị cho người dùng.
OnRedo
Đã kích hoạt khi người dùng ngược lại lệnh huỷ. Waypoint mô tả loại hành động đã được thực hiện lại.
Tham Số
OnUndo
Được kích hoạt khi người dùng thực hiện một hành động nào đó trong studio. Waypoint mô tả loại hành động đã được thực hiện.