ChangeHistoryService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Eklenti geliştiricileri *must * *ChangeHistoryService to tell Studio how to undo ve redo changes that their plugins make to experiences by recording. Before making changes, a plugin calls ChangeHistoryService:TryBeginRecording() , remembering the identifier it assigns, then after making changes, the Plugin calls 1> Class.ChangeHistoryService:FinishRecording()
Eklentiler ayrıca ChangeHistoryService:Undo() veya ChangeHistoryService:Redo() aracılığıyla bir geri alma veya yeniden yapma çağırabilir.
ChangeHistoryService derken etkisi yoktur, bu nedenle bir yürüyen deneyimde onun yöntemlerini çağırmak etkisi yoktur.
Özet
Özellikler
Yöntemler
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
Belirlenen kaydın tamamlandığını Studio'ya iletir ve kaydı tamamlamak için son operasyonu alır.
Yeniden yapılabilen eylemler olup olmadığını ve, varsa, sonuncularını döndürür.
Geri alınabilir eylemlerin olup olmadığını ve, eğer varsa, sonlarını döndürür.
Geri alınan son eylemi yürütür.
Tarihi temizleyin, böylece tüm geri/yeniden yapma yolları kaldırılır.
ChangeHistoryService'in etkinleştirilip etkinleştirilmediğini ayarlar.
Yeniden doğurma veya yeniden yapma noktası olarak kullanılabilen yeni bir yön ayarlar.
Veri modeline yapılan değişiklikleri bir kayıta kaydeder.
Geçersiz kılan son eylemi geri alır, için bir yol noktası vardır.
Etkinlikler
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Kullanıcı bir aksiyontamamladığında ateşlenir. Parçalar TryBeginRecording() ve FinishRecording() .
Kullanıcı bir aksiyonbaşladığında ateşlenir. Parçalar TryBeginRecording() から gelir.
Kullanıcı geri alma komutunu yanlış yapınca ateş edildi. Waypoint yeniden yapılan eylemi açıklar.
Stüdyoda bir eylemi geri çağırdığında ateş edildi. Waypoint, geri çağırılan eylemin türünü açıklar.
Özellikler
Yöntemler
FinishRecording
Parametreler
Önceki çağrıdan kaydı TryBeginRecording() ile belirlenir. Eğer işlem Enum.ChangeHistoryService.FinishRecordingOperation.Cancel ise, bu değer görmezden gelir ve kayıt context'e göre belirlenir.
Alınacak operasyonu belirtir.
Class.ChangeHistoryService.OnFinishRecording|OnFinishRecording için geçerli değerlerin zor zorunlu tablosu.
Dönüşler
Kod Örnekleri
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
Yeniden yapılabilen eylemler olup olmadığını ve, varsa, sonuncularını döndürür.
Dönüşler
GetCanUndo
Geri alınabilir eylemlerin olup olmadığını ve, eğer varsa, sonlarını döndürür.
Dönüşler
Redo
Geri alınan son eylemi yürütür.
Dönüşler
ResetWaypoints
Tarihi temizleyin, böylece tüm geri/yeniden yapma yolları kaldırılır.
Dönüşler
SetEnabled
DeğişiklikHistoryService'ın etkinleştirilip etkinleştirilmediğini ayarlar. Değiştirmeyi etkinleştirmezse, undo/redo listesi temizlenir ve yeniden doldurulmaz. Değiştirmeyi geri ayarlarsa, orijinal liste restore edilmez, ancak daha son işlemler listeye eklenir
Parametreler
Dönüşler
SetWaypoint
Bu yöntem Class.ChangeHistoryService:TryBeginRecording()|TryBeginRecording() ile TryBeginRecording() .
ChangeHistoryService takip eder plugin tarihini bir özellik değişikliği akışı olarak izler. SetWaypoint() bu akışta özellik değişikliği takip eder ki undo ve yeniden yapma eylemleri nerede duracağını bilir.
Kullanıcı tarafından çağrılan eylemler Studio'da bulunan şu anda değişikliği etkilemez. Kullanıcının değişikliği etkilemezse, değişikliği etkilemezse, değişikliği etkilemezse, değişikliği etk
Parametreler
Dönüşler
Kod Örnekleri
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
Bu yöntem, veri modeline değişiklikleri takip etmek için bir kayıt oluşturur. şunu çağırmalısınız önce, değişiklikleri yapmadan önce. Kaydın tamamlanmasından sonra, kaydı tamamlayan FinishRecording() ile kaydı tamamlayıp undo/redo stack'ini güncellemeyi arzu ederim.
Bu yöntem, bir kaydı başlatmak için başarısız olduğunda nil dönecek if it fails to begin a recording. Kayıtlar Run veya Play modunda ise kullanıcının bulunduğunda başarısız olur.
Class.ChangeHistoryService.IsRecordingInProgress()|IsRecordingInProgress() kayıt durumunu kontrol etmek için kullanabilirsiniz.
Parametreler
İşleme uygun günlük ve kodlama amaçlıdır.
Kullanıcıya gösterilecek eylemin adı.
Dönüşler
Kod Örnekleri
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
Geçersiz kılan son eylemi geri alır, için bir yol noktası vardır.
Dönüşler
Etkinlikler
OnRecordingFinished
Parametreler
İşleme uygun günlük ve kodlama amaçlıdır.
Kullanıcıya gösterilecek eylemin adı.
Kaydın için kimlik.
Class.ChangeHistoryService.FinishOperation()| FinishOperation() ile gelen seçenekli masa.
OnRecordingStarted
Parametreler
İşleme uygun günlük ve kodlama amaçlıdır.
Kullanıcıya gösterilecek eylemin adı.
OnRedo
Kullanıcı geri alma komutunu yanlış yapınca ateş edildi. Waypoint yeniden yapılan eylemi açıklar.
Parametreler
OnUndo
Stüdyoda bir eylemi geri çağırdığında ateş edildi. Waypoint, geri çağırılan eylemin türünü açıklar.