ChangeHistoryService

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan

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
    Keamanan Plugin

    Berkomunikasi dengan Studio bahwa rekaman yang diidentifikasi telah selesai dan untuk mengambil operasi terakhir untuk menyelesaikan rekaman.

  • Keamanan Plugin

    Mengembalikan apakah ada tindakan yang dapat dilakukan ulang, dan, jika ada, mengembalikan yang terakhir dari mereka.

  • Keamanan Plugin

    Mengembalikan apakah ada tindakan yang dapat dibatalkan, dan, jika ada, mengembalikan yang terakhir dari mereka.

  • Keamanan Plugin
  • Redo():void
    Keamanan Plugin

    Mengeksekusi tindakan terakhir yang telah dibatalkan.

  • Keamanan Plugin

    Menghapus sejarah, menyebabkan semua titik balik/mereset dihapus.

  • SetEnabled(state : bool):void
    Keamanan Plugin

    Tetapkan apakah atau tidak ChangeHistoryService diaktifkan.

  • SetWaypoint(name : string):void
    Keamanan Plugin

    Tetapkan titik baru yang dapat digunakan sebagai titik undo atau ulangi.

  • TryBeginRecording(name : string,displayName : string?):string?
    Keamanan Plugin

    Memulai melacak perubahan yang dilakukan pada model data menjadi catatan.

  • Undo():void
    Keamanan Plugin

    Batalkan tindakan terakhir yang dilakukan, di mana ada titik jalan kembali.

Acara

Properti

Metode

FinishRecording

void
Keamanan Plugin

Parameter

identifier: string

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.

finalOptions: Dictionary

Tabel nilai opcional untuk dikirim ke OnFinishRecording .


Memberikan nilai

void

Contoh Kode

ChangeHistoryService:TryBeginRecording

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

Keamanan Plugin

Mengembalikan apakah ada tindakan yang dapat dilakukan ulang, dan, jika ada, mengembalikan yang terakhir dari mereka.


Memberikan nilai

GetCanUndo

Keamanan Plugin

Mengembalikan apakah ada tindakan yang dapat dibatalkan, dan, jika ada, mengembalikan yang terakhir dari mereka.


Memberikan nilai

IsRecordingInProgress

Keamanan Plugin

Parameter

identifier: string

Memberikan nilai

Redo

void
Keamanan Plugin

Mengeksekusi tindakan terakhir yang telah dibatalkan.


Memberikan nilai

void

ResetWaypoints

void
Keamanan Plugin

Menghapus sejarah, menyebabkan semua titik balik/mereset dihapus.


Memberikan nilai

void

SetEnabled

void
Keamanan Plugin

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

state: bool

Memberikan nilai

void

SetWaypoint

void
Keamanan Plugin

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

name: string

Memberikan nilai

void

Contoh Kode

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
-- 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

Keamanan Plugin

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

name: string

Nama tindakan yang dilakukan sesuai dengan tujuan log dan kode.

displayName: string

Nama tindakan yang dilakukan untuk ditampilkan kepada pengguna.


Memberikan nilai

Contoh Kode

ChangeHistoryService:TryBeginRecording

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

void
Keamanan Plugin

Batalkan tindakan terakhir yang dilakukan, di mana ada titik jalan kembali.


Memberikan nilai

void

Acara

OnRecordingFinished

Keamanan Plugin

Parameter

name: string

Nama tindakan yang dilakukan sesuai dengan tujuan log dan kode.

displayName: string

Nama tindakan yang dilakukan untuk ditampilkan kepada pengguna.

identifier: string

Pengenal untuk rekaman.

finalOptions: Dictionary

Tabelopsional dari FinishOperation() .


OnRecordingStarted

Keamanan Plugin

Parameter

name: string

Nama tindakan yang dilakukan sesuai dengan tujuan log dan kode.

displayName: string

Nama tindakan yang dilakukan untuk ditampilkan kepada pengguna.


OnRedo

Keamanan Plugin

Diaktifkan ketika pengguna mengubah perintah undo. Waypoint menggambarkan jenis tindakan yang telah dilakukan ulang.

Parameter

waypoint: string

OnUndo

Keamanan Plugin

Diaktifkan saat pengguna melakukan tindakan di studio. Waypoint menggambarkan jenis tindakan yang telah dibatalkan.

Parameter

waypoint: string