ChangeHistoryService
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Pengembang plugin harus menggunakan Class.ChangeHistoryService untuk memberi tahu Studio cara menunduh dan mengulangi perubahan yang plugin mereka buat kepada pengalaman dengan merekaman. Sebelum membuat perubahan, plugin memanggil ChangeHistoryService, mengingat identifikator yang ditetapkan,
Plugin juga dapat secara programistik mengeksekui undo atau ulang melalui ChangeHistoryService:Undo() atau ChangeHistoryService:Redo() .
ChangeHistoryService tidak diaktifkan saat dijalankan, jadi memanggil metode-metodenya dalam pengalaman berjalan tidak berpengaruh.
Rangkuman
Metode
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
Berkomunikasi dengan Studio bahwa rekaman yang diidentifikasi telah selesai dan untuk mengambil operasi terakhir untuk menyelesaikan rekaman.
Mengembalikan apakah ada tindakan yang dapat dilakukan ulang, dan, jika ada, mengembalikan yang terakhir dari mereka.
Mengembalikan apakah ada tindakan yang dapat dibatalkan, dan, jika ada, mengembalikan yang terakhir dari mereka.
Mengeksekusi tindakan terakhir yang telah dibatalkan.
Menghapus sejarah, menyebabkan semua titik balik/mereset dihapus.
Tetapkan apakah atau tidak ChangeHistoryService diaktifkan.
Tetapkan titik baru yang dapat digunakan sebagai titik undo atau ulangi.
Memulai melacak perubahan yang dilakukan pada model data menjadi catatan.
Batalkan tindakan terakhir yang dilakukan, di mana ada titik jalan kembali.
Acara
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Diaktifkan ketika pengguna menyelesaikan action. Variabel datang dari TryBeginRecording() dan FinishRecording() .
Diaktifkan ketika pengguna memulai action. Variabel datang dari TryBeginRecording() .
Diaktifkan ketika pengguna mengubah perintah undo. Waypoint menggambarkan jenis tindakan yang telah dilakukan ulang.
Diaktifkan saat pengguna melakukan tindakan di studio. Waypoint menggambarkan jenis tindakan yang telah dibatalkan.
Properti
Metode
FinishRecording
Parameter
Mengidentifikasi rekaman dari panggilan sebelumnya untuk TryBeginRecording() . Jika operasi ini adalah Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, nilai ini diabaikan, dan rekaman ditentukan oleh konteks.
Meng指定操作 untuk diambil.
Tabel nilai opcional untuk dikirim ke OnFinishRecording .
Memberikan nilai
Contoh Kode
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
Mengembalikan apakah ada tindakan yang dapat dilakukan ulang, dan, jika ada, mengembalikan yang terakhir dari mereka.
Memberikan nilai
GetCanUndo
Mengembalikan apakah ada tindakan yang dapat dibatalkan, dan, jika ada, mengembalikan yang terakhir dari mereka.
Memberikan nilai
Redo
Mengeksekusi tindakan terakhir yang telah dibatalkan.
Memberikan nilai
ResetWaypoints
Menghapus sejarah, menyebabkan semua titik balik/mereset dihapus.
Memberikan nilai
SetEnabled
Tetapkan apakah atau tidak ChangeHistoryService diaktifkan. Saat ditetapkan ke false, daftar undo / do ulang dihapus, dan tidak repopulate. Saat ditetapkan ke true lagi, daftar asli tidak dikembalikan, tetapi operasi lainnya ditambahkan ke daftar sekali lagi
Parameter
Memberikan nilai
SetWaypoint
Metode ini akan segera dihapus dari Class.ChangeHistoryService:TryBeginRecording()|TryBeginRecording() .
ChangeHistoryService melacak sejarah plugin sebagai aliran perubahan kepemilikan. SetWaypoint() menciptakan potongan dalam aliran perubahan kepemilikan sehingga undo dan ulangi tindakan tahu di mana untuk berhenti.
Secara konvensi, tindakan pengguna yang dipanggil di Studio harus memanggil SetWaypoint()setelah menyelesaikan set perubahan mereka ke pengalaman. Meneleponnya 1> sebelum1> menyelesaikan set perubahan mungkin members
Parameter
Memberikan nilai
Contoh Kode
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
Metode ini memulai rekaman untuk melacak perubahan model data. Anda harus memanggilnya sebelum membuat perubahan untuk menghindari peringatan atau kesalahan masa depan.
Ketika perekaman selesai, Anda memanggil FinishRecording() dengan identifikasi perekaman yang dikembalikan untuk menyelesaikan perekaman dan menyelesaikan pila pengulangan/pengulangan.
Metode ini akan mengembalikan nil jika gagal memulai rekaman. Rekaman gagal jika plugin sudah memiliki rekaman yang sedang berlangsung, atau jika pengguna berada dalam mode Run atau Play .
Anda dapat menggunakan IsRecordingInProgress() untuk memeriksa status perekaman plugin.
Parameter
Nama tindakan yang dilakukan sesuai dengan tujuan log dan kode.
Nama tindakan yang dilakukan untuk ditampilkan kepada pengguna.
Memberikan nilai
Contoh Kode
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
Batalkan tindakan terakhir yang dilakukan, di mana ada titik jalan kembali.
Memberikan nilai
Acara
OnRecordingFinished
Parameter
Nama tindakan yang dilakukan sesuai dengan tujuan log dan kode.
Nama tindakan yang dilakukan untuk ditampilkan kepada pengguna.
Pengenal untuk rekaman.
Tabelopsional dari FinishOperation() .
OnRecordingStarted
Parameter
Nama tindakan yang dilakukan sesuai dengan tujuan log dan kode.
Nama tindakan yang dilakukan untuk ditampilkan kepada pengguna.
OnRedo
Diaktifkan ketika pengguna mengubah perintah undo. Waypoint menggambarkan jenis tindakan yang telah dilakukan ulang.
Parameter
OnUndo
Diaktifkan saat pengguna melakukan tindakan di studio. Waypoint menggambarkan jenis tindakan yang telah dibatalkan.