Semua kode tersedia untuk bebas di sini: https://github.com/KampinKarl1/Simple-Inventory
Secara khusus kami ingin melihat – https://github.com/KampinKarl1/Simple-Inventory/blob/master/Assets/Scripts/Inventory/InventorySaveSystem.cs
Anda dapat melihat saya menjelaskan semuanya, baris demi baris, di sini: https://youtu.be/2tRuW6pzeB0
Saya meneliti banyak cara berbeda untuk membuat sistem penyimpanan. Banyak tutorial yang merekomendasikan penggunaan file Unity PlayerPrefs. File itu benar-benar ada untuk menyimpan preferensi pengaturan pengguna dan hal-hal seperti itu sehingga menggunakannya untuk menyimpan sepertinya lebih seperti peretasan daripada apa pun.
Saya berpikir untuk menggunakan utilitas JSON yang ada di dalam Unity tetapi hal itu juga menimbulkan masalah besar bagi saya: Objek yang Anda simpan harus memiliki bidang publik. Saya lebih suka menjaga kelas saya terenkapsulasi dengan baik (Terpisah dari apa pun yang tidak boleh disentuh atau tidak terkait dengan fungsi/datanya), jadi saya memilih namespace IO (input output) bawaan Microsoft.
Anda akan menggunakan StreamWriter dan StreamReader masing-masing untuk menyimpan dan memuat. Contoh di sini, https://docs.microsoft.com/en-us/dotnet/api/system.io.streamwriter?view=net-5.0, mencakup banyak hal yang perlu Anda ketahui.
Strategi yang saya gunakan untuk menyimpan inventaris saya melibatkan pencarian semua Item dalam proyek saya menggunakan metode Resources.FindAllObjectsOfType

Saat menyimpan inventaris, saya akan menulis kode item (di-hash menggunakan Animator.StringToHash) menggabungkan karakter untuk membagi kode dan menghitung item itu, dan menggabungkan hitungannya.

Untuk Memuat, setiap baris dalam file simpanan dibaca. Garis-garis tersebut dipisahkan berdasarkan karakter yang memisahkannya dalam proses penulisan, dan bagian pertama dari garis yang dipisahkan adalah kode item dan bagian kedua adalah hitungan. String tersebut diurai kembali menjadi bilangan bulat, dan kode Item dimasukkan ke dalam kamus yang saya buat sebelumnya dengan semua kode item dan item terkait untuk mendapatkan item tersebut.
Saat kita mendapatkan setiap item dan nomor item tersebut, kita menambahkannya ke kamus kedua (nilai kembalian dari metode Load) dan meneruskannya kembali ke inventaris di mana inventaris dapat memilih apa yang harus dilakukan dengan kamus tersebut – (seperti menambahkan mereka ke inventaris).

Saya menyerahkan kepada pembaca untuk memutuskan bagaimana cara menyimpan inventaris. Dalam kasus saya, saya melakukannya di panggilan balik OnDisable bawaan yang ada di semua MonoBehaviours. Anda dapat melakukannya pada event onClick tombol – Karena ini adalah metode publik, Anda dapat meletakkan skrip SaveInventory ke dalam slot yang muncul di inspektur saat Anda menambahkan event onClick ke komponen Button.
Semoga ini bisa membantu; tinggalkan pertanyaan apa pun di komentar (lebih baik di YouTube daripada di sini).
Gaming Center
Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.
Comments are closed, but trackbacks and pingbacks are open.