GlobalDataStore
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Sebuah GlobalDataStore 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 dipesan tidak mendukung versi dan metadata, jadi DataStoreKeyInfo selalu nil untuk kunci di dalam Class.OrderedDataStore . Jika Anda memerlukan dukungan versi dan metadata, gunakan OrderedDataStore.
Rangkuman
Metode
Mengembalikan nilai kunci dalam penyimpanan data yang ditentukan dan instansi DataStoreKeyInfo.
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
Meningkatkan nilai kunci oleh jumlah yang diberikan (keduanya harus menjadi angka).
Menghapus kunci yang ditentukan sambil juga menyimpan versi yang dapat diakses.
Tetapkan nilai penyimpanan data untuk unityang diberikan.
Mengubah nilai unitdengan nilai baru dari fungsi panggilan yang ditentukan.
Properti
Metode
GetAsync
Fungsi ini mengembalikan nilai terbaru dari kunci yang disediakan dan instansi DataStoreKeyInfo. Jika kunci tidak ada atau jika versi terbaru telah ditandai sebagai dihapus, kembalikan kedua nilai akan menjadi nil.
Kunci di-Cache lokal untuk 4 detik setelah dilihatpertama. Panggilan GlobalDataStore:GetAsync() dalam 4 detik ini menghasilkan nilai dari cache. Modifikasi ke kunci oleh GlobalDataStore:SetAsync() atau GlobalDataStore:UpdateAsync() menerapkan untuk cache segera dan memulai ulang timer 4 detik
Untuk mendapatkan versi tertentu, seperti versi sebelumnya, gunakan DataStore:GetVersionAsync() .
Parameter
Nama kunci untuk nilai yang diminta. Jika DataStoreOptions.AllScopes ditetapkan sebagai benar saat mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan scope asli seperti dalam " scope/key".
Memberikan nilai
Nilai entri di data store 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 angka).
OrderedDataStore tidak mendukung versi, jadi memanggil metode ini di sebuah OrderedDataStore kunci akan menulis 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 di set ke benar ketika mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan skala asli seperti yang ada di " scope/key".
Jumlah untuk meningkatkan nilai saat ini dengan.
(Opsional) DataStoreIncrementOptions instansi yang menggabungkan beberapa parameter tambahan sebagai metrik khusus dan memungkinkan ekstensibilitas masa depan.
Memberikan nilai
Nilai yang diperbarui dari entri di toko data dengan kunci yang diberikan.
RemoveAsync
Fungsi ini menandai kunci yang ditentukan sebagai dihapus dengan membuat versi "tombstone" baru dari unit. Sebelum ini, itu mengembalikan versi terbaru sebelum panggilan penghapusan.
Setelah kunci dihapus melalui fungsi ini, GlobalDataStore:GetAsync() panggilan untuk kunci akan mengembalikan nil . Versi lebih tua dari kunci tetap dapat diakses melalui DataStore:ListVersionsAsync() dan 1> Class.DataStore:GetVersionAsync()1>, asalkan mereka belum kadaluars
OrderedDataStore tidak mendukung versi, jadi memanggil RemoveAsync() di kunci OrderedDataStore akan menghapusnya secara permanen.
Objek yang dihapus akan dihapus secara permanen setelah 30 hari.
Jika nilai sebelumnya telah dihapus melalui GlobalDataStore:RemoveAsync() atau DataStore:RemoveVersionAsync() , fungsi akan mengembalikan nil , 1> nil1> untuk nilai dan 4> Class.DataStoreKeyInfo4> untuk masing-masing.
Parameter
Nama kunci untuk dihapus. Jika DataStoreOptions.AllScopes ditetapkan sebagai benar saat mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan skala asli seperti yang tercantum dalam " scope / key".
Memberikan nilai
Nilai penyimpanan data sebelum dihapus dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal dan waktu saat versi dibuat, dan fungsi untuk mengambil kembali UserIds dan metadata.
SetAsync
Fungsi ini menetapkan nilai terbaru, UserIds , dan metadata untuk unityang diberikan.
Nilai dalam data store berversi, artinya GlobalDataStore:SetAsync() akan menciptakan versi baru setiap kali di panggil. Versi prasejah mengakses melalui DataStore:ListVersionsAsync() / DataStore:GetVersionAsync() untuk hingga 30 hari di mana mereka dihapus secara permanen.
OrderedDataStore tidak mendukung versi, jadi memanggil metode ini di sebuah OrderedDataStore kunci akan menulis 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 data store harus valid UTF-8 . In UTF-8, nilai lebih besar dari 127 hanya digunakan untuk mengkode multi-byte codepoints, jadi satu bit lebih besar dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:SetAsync() gagal.
Tetapkan vs. Perbarui
GlobalDataStore:SetAsync() adalah solusi terbaik untuk pembaruan cepat dari unitspesifik, dan hanya menghitung terhadap batas tulis. Namun, itu dapat menyebabkan ketidakkompatan data jika dua server mencoba untuk menetapkan kunci yang s
Parameter
Nama kunci untuk nilai yang harus atur. Jika DataStoreOptions.AllScopes di set ke benar ketika mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus disertakan dengan scope asli seperti yang ada di "scope/key".
Nilai yang akan diatur oleh kunci penyimpanan data.
Tabel UserIds , sangat direkomendasikan untuk membantu dengan melacak / menghapus GDPR.
(Opsional) DataStoreSetOptions instansi yang memungkinkan spesifikasi metadata pada unit.
Memberikan nilai
Identifikasi versi baru yang baru saja dibuat. Ini dapat digunakan untuk mengambil informasi kunci menggunakan GetVersionAsync() atau untuk menghapusnya menggunakan RemoveVersionAsync() .
UpdateAsync
Fungsi ini mengambil nilai dan metadata dari kunci dari data store dan menyimpannya dengan nilai baru yang ditentukan oleh fungsi panggilan yang ditentukan melalui parameter kedua. Jika fungsi panggilan menghasilkan nil, operasi menulis dihentikan dan nilai tetap tidak berubah.
Jika pembaruan berhasil, versi baru dari nilai akan dibuat dan versi sebelumnya akan tetap tersedia melalui DataStore:ListVersionsAsync() dan DataStore:GetVersionAsync() .
OrderedDataStore tidak mendukung versi, jadi memanggil fungsi ini di sebuah OrderedDataStore kunci akan menulis nilai saat ini dan membuat versi sebelumnya tidak dapat diakses.
Dalam kasus di mana server game lainnya diperbarui kunci dalam waktu singkat antara mengambil nilai kunci dan menetapkan nilai kunci, GlobalDataStore:UpdateAsync() akan memanggil fungsi lagi, menyisakan hasil panggilan sebelumnya. Fungsi akan dianggil sebanyak mungkin sampai
Setiap string yang disimpan di penyimpanan data harus valid UTF-8 . Di UTF-8, nilai lebih besar dari 127 hanya digunakan untuk men-Encoding multi-byte kode-poin, jadi satu bajak laut lebih besar dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:UpdateAsync() akan gagal.
Tetapkan vs. Perbarui
GlobalDataStore:SetAsync() adalah solusi terbaik untuk pembaruan cepat dari unitspesifik, dan hanya menghitung terhadap batas tulis. Namun, itu dapat menyebabkan ketidakkompatan data jika dua server mencoba untuk menetapkan kunci yang s
Fungsi Panggilan
Fungsi panggilan 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 panggilan kembali mengembalikan hingga tiga nilai:
- Nilai baru untuk diatur untuk kunci.
- Sebuah matriks UserIds untuk diasosiasi dengan unit. DataStoreKeyInfo:GetUserIds() harus dikembalikan kecuali jika ID yang ada tidak diubah; jika tidak, semua ID yang ada akan dihapus.
- Tabel Lua yang berisi metadata untuk diasosiasikan dengan unit. DataStoreKeyInfo:GetMetadata() harus dikembalikan kecuali jika metadata yang ada diubah; jika demikian, semua metadata yang ada akan dihapus.
Jika panggilan kembali mengembalikan nil alih-alih, server saat ini akan berhenti mencoba untuk menyetujui unit.
Fungsi panggilan tidak dapat menghasilkan, jadi jangan tidak mencakup panggilan seperti Library.task.wait() .
Parameter
Nama kunci untuk nilai yang harus diperbarui. Jika DataStoreOptions.AllScopes di set ke benar ketika mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan skala asli seperti yang ada di " scope/key".
Transformasi fungsi yang mengambil nilai saat ini dan DataStoreKeyInfo sebagai parameter dan mengembalikan nilai baru bersama dengan opsi UserIds dan metadata.
Memberikan nilai
Nilai entri di toko data dengan kunci yang diberikan dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal, dan waktu versi dibuat, dan fungsi untuk mengambil kembali UserIds dan metadata.