GlobalDataStore
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
A Penyimpan Data Global mengekspos fungsi untuk menyimpan dan memuat data untuk DataStoreService .
Lihat Toko Data untuk panduan lengkap tentang struktur data, manajemen, penanganan kesalahan, dll
Toko data yang diurutkan tidak mendukung versi dan metadata, jadi DataStoreKeyInfo selalu nil untuk kunci di dalam OrderedDataStore .Jika Anda membutuhkan dukungan versi dan metadata, gunakan DataStore .
Rangkuman
Metode
Kembalikan nilai kunci di penyimpanan data tertentu dan kejadianDataStoreKeyInfo .
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
Meningkatkan nilai kunci dengan jumlah yang disediakan (keduanya harus menjadi bilangan bulat).
Menghapus kunci yang ditentukan sambil juga menyimpan versi yang dapat diakses.
Tetapkan nilai penyimpanan data untuk unityang diberikan.
Memperbarui nilai unitdengan nilai baru dari fungsi panggilan balasan yang ditentukan.
Properti
Metode
GetAsync
Fungsi ini men返ikan nilai terbaru dari kunci yang disediakan dan instansi DataStoreKeyInfo .Jika kunci tidak ada atau jika versi terbaru telah ditandai sebagai dihapus, kedua nilai return akan menjadi nil .
Kunci disimpan lokal selama 4 detik setelah bacaan pertama.Panggilan GlobalDataStore:GetAsync() dalam 4 detik ini mengembalikan nilai dari cache.Modifikasi terhadap kunci oleh GlobalDataStore:SetAsync() atau GlobalDataStore:UpdateAsync() berlaku untuk cache segera dan memulai ulang penghitung waktu 4 detik.
Untuk mendapatkan versi tertentu, seperti versi sebelum terbaru, gunakan DataStore:GetVersionAsync() .
Parameter
Nama kunci untuk nilai yang diminta.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".
Memberikan nilai
Nilai entri di penyimpanan data dengan kunci yang diberikan dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal dan waktu versi dibuat, dan fungsi untuk mengambil UserIds dan metadata.
IncrementAsync
Fungsi ini meningkatkan nilai kunci dengan jumlah yang disediakan (keduanya harus menjadi bilangan bulat).
Nilai di GlobalDataStores adalah diberi versi seperti yang dinyatakan dalam penggunaan versi . OrderedDataStores tidak mendukung versi, jadi memanggil metode ini pada kunci penyimpanan data tertata tidak akan menghapus nilai saat ini dengan nilai yang ditingkatkan dan membuat versi sebelumnya tidak dapat diakses.
Parameter
Nama kunci untuk nilai yang harus diperbarui.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".
Jumlah untuk meningkatkan nilai saat ini oleh.
(Opsi) DataStoreIncrementOptions instansi yang menggabungkan beberapa parameter tambahan sebagai metadata khusus dan memungkinkan ekstensibilitas masa depan.
Memberikan nilai
Nilai entri yang diperbarui di penyimpanan data dengan kunci yang diberikan.
RemoveAsync
Fungsi ini menandai kunci yang ditentukan sebagai dihapus dengan membuat versi "batu makam" baru dari unit.Sebelum ini, ia mengembalikan versi terbaru sebelum menghapus panggilan.
Setelah kunci dihapus melalui fungsi ini, GlobalDataStore:GetAsync() panggilan untuk kunci akan kembali nil .Versi lama kunci tetap dapat diakses melalui DataStore:ListVersionsAsync() dan DataStore:GetVersionAsync(), asalkan mereka belum kedaluwarsa.
OrderedDataStore tidak mendukung versi, jadi memanggil RemoveAsync() pada kunci OrderedDataStore akan menghapusnya secara permanen.
Objek yang dihapus akan dihapus secara permanen setelah 30 hari.
Jika nilai sebelumnya sudah dihapus melalui GlobalDataStore:RemoveAsync() atau DataStore:RemoveVersionAsync() , fungsi akan kembali nil , nil untuk nilai dan DataStoreKeyInfo masing-masing.
Parameter
Nama kunci untuk dihapus.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".
Memberikan nilai
Nilai penyimpanan data sebelum menghapus dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal dan waktu versi dibuat, dan fungsi untuk mengambil UserIds dan metadata.
SetAsync
Fungsi ini menetapkan nilai terbaru, UserIds , dan metadata untuk unityang diberikan.
Nilai di GlobalDataStores adalah diberi versi seperti yang dinyatakan dalam penggunaan versi . OrderedDataStores tidak mendukung versi, jadi memanggil metode ini pada kunci penyimpanan data tertata tidak akan menghapus nilai saat ini dan membuat versi sebelumnya tidak dapat diakses.
Definisi metadata harus selalu diperbarui dengan nilai, bahkan jika tidak ada perubahan pada nilai saat ini; jika tidak, nilai saat ini akan hilang.
Setiap string yang disimpan di penyimpanan data harus valid UTF-8 .Di UTF-8, nilai lebih dari 127 digunakan secara eksklusif untuk mengodekan titik kode multi-byte, jadi satu byte lebih dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:SetAsync() gagal.
Tetapkan vs. Update
GlobalDataStore:SetAsync() adalah yang terbaik untuk pembaruan cepat dari unittertentu, dan hanya dihitung melawan batas penulisan.Namun, ini dapat menyebabkan ketidakkonsistenan data jika dua server mencoba mengatur kunci yang sama pada saat yang sama. GlobalDataStore:UpdateAsync() lebih aman untuk menangani upaya multi-server karena membaca nilai kunci saat ini (dari server mana pun yang terakhir diperbarui) sebelum melakukan perubahan apa pun.Namun, sedikit lebih lambat karena membaca sebelum menulis, dan juga menghitung melawan batas baca dan tulis.
Parameter
Nama kunci untuk nilai yang harus ditetapkan.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".
Nilai yang akan ditetapkan kunci penyimpanan data.
Tabel dari UserIds , sangat direkomendasikan untuk membantu dengan pelacakan/penghapusan GDPR.
(Opsi) DataStoreSetOptions instansi yang memungkinkan spesifikasi metadata pada kunci
Memberikan nilai
Pengidentifikasi versi dari versi baru yang dibuat. Ini dapat digunakan untuk mengambil informasi kunci menggunakan GetVersionAsync() atau untuk menghapusnya menggunakan RemoveVersionAsync() .
UpdateAsync
Fungsi ini mengambil nilai dan metadata kunci dari penyimpanan data dan memperbaruinya dengan nilai baru yang ditentukan oleh fungsi panggilan yang ditentukan melalui parameter kedua.Jika panggil balasan mengembalikan nil, operasi penulisan dibatalkan dan nilainya tetap tidak berubah.
Nilai di GlobalDataStores adalah diberi versi seperti yang dinyatakan dalam penggunaan versi . OrderedDataStores tidak mendukung versi, jadi memanggil metode ini pada kunci penyimpanan data tertata tidak akan menghapus nilai saat ini dan membuat versi sebelumnya tidak dapat diakses.
Dalam kasus di mana server game lain memperbarui kunci dalam waktu singkat antara mengambil nilai unitsaat ini dan menetapkan nilai unit, GlobalDataStore:UpdateAsync() akan memanggil fungsi lagi, menyingkirkan hasil panggilan sebelumnya.Fungsi akan dipanggil sebanyak yang diperlukan sampai data disimpan atau sampai fungsi panggil balasan kembali nil .Ini dapat digunakan untuk memastikan tidak ada data yang ditulis ulang.
Setiap string yang disimpan di penyimpanan data harus valid UTF-8 .Di UTF-8, nilai lebih dari 127 digunakan secara eksklusif untuk mengodekan titik kode multi-byte, jadi satu byte lebih dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:UpdateAsync() gagal.
Tetapkan vs. Update
GlobalDataStore:SetAsync() adalah yang terbaik untuk pembaruan cepat dari unittertentu, dan hanya dihitung melawan batas penulisan.Namun, ini dapat menyebabkan ketidakkonsistenan data jika dua server mencoba mengatur kunci yang sama pada saat yang sama. GlobalDataStore:UpdateAsync() lebih aman untuk menangani upaya multi-server karena membaca nilai kunci saat ini (dari server mana pun yang terakhir diperbarui) sebelum melakukan perubahan apa pun.Namun, sedikit lebih lambat karena membaca sebelum menulis, dan juga menghitung melawan batas baca dan tulis.
Fungsi Panggil Kembali
Fungsi panggil balasan menerima dua argumen:
- Nilai kunci saat ini sebelum update.
- DataStoreKeyInfo instansi yang berisi informasi versi terbaru (argumen ini dapat diabaikan jika metadata tidak digunakan).
Sebagai gantinya, fungsi panggil balasan mengembalikan hingga tiga nilai:
- Nilai baru untuk ditetapkan untuk kunci.
- Sebuah array dari UserIds untuk berhubungan dengan unit. DataStoreKeyInfo:GetUserIds() harus dikembalikan kecuali ID yang ada diubah; jika tidak, semua ID yang ada akan dihapus.
- Meja Luau yang berisi metadata untuk diasosiasikan dengan unit. DataStoreKeyInfo:GetMetadata() harus dikembalikan kecuali metadata yang ada diubah; jika tidak, semua metadata yang ada akan dihapus.
Jika panggil balasan mengembalikan nil sebagai gantinya, server saat ini akan berhenti mencoba untuk memperbarui unit.
Fungsi panggil balasan tidak bisa menghasilkan, jadi jangan tidak termasuk panggilan seperti task.wait().
Parameter
Nama kunci untuk nilai yang harus diperbarui.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".
Transformasi fungsi yang mengambil nilai saat ini dan DataStoreKeyInfo sebagai parameter dan kembalikan nilai baru bersama dengan metadata opsional UserIds dan metadata.
Memberikan nilai
Nilai entri yang diperbarui di penyimpan data dengan kunci yang diberikan dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal dan waktu versi dibuat, dan fungsi untuk mengambil UserIds dan metadata.