Pada artikel ini, kita akan melihat struktur inventaris yang saya terapkan pada proyek multi-pemain saya. Bagian ini sangat kecil dan tidak mengandung kode.
Inventaris itu sendiri adalah komponen yang digunakan tidak hanya untuk Karakter , tetapi juga untuk setiap objek dalam game, yang, menurut skenario, dapat menjadi penyimpanan untuk item. Misalnya: dada, kotak, kotak, lemari, dll.
Komponen ini mengandung TArray , elemen-elemen yang menyimpan minimal informasi yang diperlukan:
- Pengidentifikasi objek, dalam bentuk GameplayTag . Seperti yang saya katakan sebelumnya, GameplayTag lebih nyaman daripada, katakanlah, FName , karena secara signifikan mengurangi risiko kesalahan.
- Jumlah objek dalam slot yang ditentukan oleh variabel int .
- Kategori objek untuk memahami bagaimana itu bisa diterapkan. Untuk tujuan ini, alih-alih Enum, Anda dapat menggunakan GameplayTagsContainer , yang akan memungkinkan kami untuk mengaitkan objek ke banyak jenis sekaligus jika perlu.
- Properti unik dari objek, yang disimpan sebagai struktur dari sekelompok GameplayTag dan mengambang . Di sini Anda dapat menyimpan parameter dan pengubah.
Tidak ada tautan ke objek itu sendiri dalam struktur inventaris ini, karena setelah menyimpan dan memuat game, mereka akan merujuk ke area yang sudah menyimpan data lain. Dengan demikian, Anda memerlukan beberapa alat yang dapat mengembalikan (respawn) semua objek setelah memuat gim. Di sini DataAsset datang untuk menyelamatkan , yang selalu tersedia di sisi server (karena dalam kasus kami kami menghubungkannya melalui GameMode ) dan siap membantu menempatkan objek di atas panggung.
Komponen inventaris juga berisi logika untuk menghapus dan menambahkan jumlah objek yang diperlukan, logika untuk mengisi slot. Semua fungsi yang diluncurkan dalam wadah hanya berfungsi di sisi server.
Struktur interaksi inventaris dan database adalah sebagai berikut Properti unik objek, seperti komponen tambahan, dan logika mudah dikonfigurasikan menggunakan C ++ dan / atau Cetak Biru .
Di bagian selanjutnya, saya akan menunjukkan bagaimana Anda dapat menghubungkan komponen yang dibuat ke Karakter atau objek lain.
Setiap kritik konstruktif dipersilahkan. Lebih disukai didukung oleh saran.
PS Dalam dua artikel pertama gambar penjelasan telah ditambahkan.