ChangeHistoryService

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet

Eklenti geliştiricileri eklentilerinin deneyimlere yaptığı değişiklikleri kaydederek nasıl geri alınacağını ve yeniden yapılacağını Studio'ya söylemek için ChangeHistoryService kullanmalıdır.Değişiklik yapmadan önce, bir eklenti çağrır ChangeHistoryService:TryBeginRecording() , atadığı tanımlayıcıyı hatırlayarak, sonra değişiklik yaptıktan sonra, eklenti kaydı bitirmek için çağrır ChangeHistoryService:FinishRecording() .

Eklentiler ayrıca programatik olarak bir geri al veya yeniden yapmayı ChangeHistoryService:Undo() veya ChangeHistoryService:Redo() aracılığıyla çağırabilir.

ChangeHistoryService çalışma sırasında etkinleştirilmediğinden, yöntemlerini çalışan bir deneyimde çağırmak hiçbir etkiye sahip değil.

Özet

Yöntemler

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
    Eklenti Güvenliği

    Tanımlanan kaydın bitirildiğini ve kaydı bitirmek için son operasyonun yapılması gerektiğini Stüdyoya iletir.

  • Eklenti Güvenliği

    Geri alınabilen eylemler olup olmadığını ve eğer varsa, sonuncusunu döndürür.

  • Eklenti Güvenliği

    Geri alınabilen eylemler olup olmadığını ve eğer varsa, sonuncusunu döndürür.

  • Eklenti Güvenliği
  • Redo():()
    Eklenti Güvenliği

    Geri alınan son eylemi yürütür.

  • Eklenti Güvenliği

    Tarihi temizler, böylece tüm geri alma/yeniden yapma noktaları kaldırılır.

  • SetEnabled(state : boolean):()
    Eklenti Güvenliği

    Değişiklik geçmişi hizmetinin etkinleştirilip etkinleştirilmediğini ayarlar.

  • SetWaypoint(name : string):()
    Eklenti Güvenliği

    Geri alma veya yeniden yapma noktası olarak kullanılabilecek yeni bir yol noktası belirler.

  • TryBeginRecording(name : string,displayName : string?):string?
    Eklenti Güvenliği

    Veri modeline yapılan değişiklikleri kayıda izlemeye başlar.

  • Undo():()
    Eklenti Güvenliği

    Son yapılan eylemi geri alır, için bir yol noktası vardır.

Etkinlikler

Özellikler

Yöntemler

FinishRecording

()
Eklenti Güvenliği

Parametreler

identifier: string

Önceki çağrıdan kaydı tanımlar TryBeginRecording() 'a.Operasyon Enum.ChangeHistoryService.FinishRecordingOperation.Cancel ise, bu değer göz ardı edilir ve kayıt, konteks tarafından belirlenir.

Varsayılan değer: ""

Alınacak işlemi belirtir.

Varsayılan değer: ""
finalOptions: Dictionary

OnFinishRecording geçmek için isteğe bağlı değer tablosu.

Varsayılan değer: ""

Dönüşler

()

Kod Örnekleri

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

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

Eklenti Güvenliği

Geri alınabilen eylemler olup olmadığını ve eğer varsa, sonuncusunu döndürür.


Dönüşler

GetCanUndo

Eklenti Güvenliği

Geri alınabilen eylemler olup olmadığını ve eğer varsa, sonuncusunu döndürür.


Dönüşler

IsRecordingInProgress

Eklenti Güvenliği

Parametreler

identifier: string
Varsayılan değer: ""

Dönüşler

Redo

()
Eklenti Güvenliği

Geri alınan son eylemi yürütür.


Dönüşler

()

ResetWaypoints

()
Eklenti Güvenliği

Tarihi temizler, böylece tüm geri alma/yeniden yapma noktaları kaldırılır.


Dönüşler

()

SetEnabled

()
Eklenti Güvenliği

Değişiklik geçmişi hizmetinin etkinleştirilip etkinleştirilmediğini ayarlar.Yalan olarak ayarlanırsa, geri al/yeniden yap listesi temizlenir ve yeniden doldurulmaz.Yeniden doğru olarak ayarlanırken, orijinal liste geri yüklenmez, ancak daha fazla işlem listeye bir kez daha eklenir

Parametreler

state: boolean
Varsayılan değer: ""

Dönüşler

()

SetWaypoint

()
Eklenti Güvenliği

Bu yöntem yakında eskiye düşecek ve TryBeginRecording() le desteklenecek.

ChangeHistoryService izleri özellik değişiklikleri akışı olarak plugin geçmişi izler.SetWaypoint() bu özellik değişikliklerinin akışında bir kesme oluşturur, böylece geri alma ve yeniden yapma eylemlerinin nerede durması gerektiğini bilir.

Konvansiyona göre, Studio'da kullanıcı tarafından çağrılan eylemler bir deneyime değişiklik setlerini bitirdikten sonra çağrılmalıdır sonra çünkü çalışmalarını bitirdikten sonra çağrılan eylemler kullanıcı tarafından çağrılır.Bunu önce bir dizi değişiklik çağırmak, bir yol noktası belirlemeyi başaramayan başka bir hatalı eklentiyi temizleyebilir, ancak kendi plugininizde bu kullanımı haklı çıkarmak için kötü bir sebep.

Parametreler

name: string
Varsayılan değer: ""

Dönüşler

()

Kod Örnekleri

In order for the waypoints to work correctly, you need to set one both before AND after you perform the action that should be able to be undone.

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

Eklenti Güvenliği

Bu yöntem, veri modelindeki değişiklikleri izlemek için kayıt başlatır.Siz değişiklik yapmadan önce onu çağırmalısınız gelecekteki uyarıları veya hataları önlemek için.

Kayıt bitirildiğinde, döndürülen kayıt tanımlayıcısı ile FinishRecording() 'yi arayın ve kaydı bitirin ve geri git/geri yapma yığınını güncelleyin.

Bu yöntem, kayıt başlatmada başarısız olursa nil döndürecektir.Eğer eklentide zaten bir kayıt devam ediyorsa veya kullanıcı Kaydet veya Oynat modunda ise kayıtlar başarısız olur.

eklentikayıt durumunu kontrol etmek için IsRecordingInProgress() kullanabilirsiniz.

Parametreler

name: string

Kayıt ve kodlama amaçları için uygun olan eylemin adı.

Varsayılan değer: ""
displayName: string

Kullanıcıya görüntülemek için gerçekleştirilen eylemin adı.

Varsayılan değer: ""

Dönüşler

Kod Örnekleri

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

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

()
Eklenti Güvenliği

Son yapılan eylemi geri alır, için bir yol noktası vardır.


Dönüşler

()

Etkinlikler

OnRecordingFinished

Eklenti Güvenliği

Parametreler

name: string

Kayıt ve kodlama amaçları için uygun olan eylemin adı.

displayName: string

Kullanıcıya görüntülemek için gerçekleştirilen eylemin adı.

identifier: string

Kayıt için tanımlayıcı.

finalOptions: Dictionary

Opsiyonel tablo FinishOperation() 'den.


OnRecordingStarted

Eklenti Güvenliği

Parametreler

name: string

Kayıt ve kodlama amaçları için uygun olan eylemin adı.

displayName: string

Kullanıcıya görüntülemek için gerçekleştirilen eylemin adı.


OnRedo

Eklenti Güvenliği

Kullanıcı geri gitme komutunu tersine çevirdiğinde ateş edilir. Waypoint geri yapılan tür eylemi tanımlar.

Parametreler

waypoint: string

OnUndo

Eklenti Güvenliği

Kullanıcı stüdyoda bir eylemi geri aldığında ateş edilir. Yol noktası geri alınan eylemin türünü tanımlar.

Parametreler

waypoint: string