概要
方法
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():() |
活動
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 |
API 參考
方法
FinishRecording
ChangeHistoryService:FinishRecording(
):()
參數
返回
()
範例程式碼
ChangeHistoryService:TryBeginRecording
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)IsRecordingInProgress
Redo
ChangeHistoryService:Redo():()
返回
()
ResetWaypoints
ChangeHistoryService:ResetWaypoints():()
返回
()
SetWaypoint
參數
返回
()
範例程式碼
ChangeHistoryService:SetWaypoint
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
-- 在工作之前調用 SetWaypoint 不會造成任何問題,然而
-- 這是多餘的,只有在工作之後的調用是必要的。
--ChangeHistoryService:SetWaypoint("Setting selection to neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- 在完成工作後調用 SetWaypoint
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- 沒有任何操作。當動作沒有對體驗造成任何更改時,您不需要調用 SetWaypoint。
end
end)TryBeginRecording
返回
範例程式碼
ChangeHistoryService:TryBeginRecording
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?
參數
OnRecordingStarted