Pengelola Komponen

Komponen

Dalam Craftland Studio PC, sebuah ‘komponen’ dapat dipahami sebagai kontainer untuk data.
Sebuah entitas itu sendiri hanyalah identifikasi kosong; apa yang dapat dilakukannya dan bagaimana perilakunya sepenuhnya bergantung pada komponen mana yang terpasang padanya.

  • Komponen Gerak: Menyimpan data yang berkaitan dengan gerak, seperti kecepatan dan arah gerak.
  • Komponen Render: Menyimpan data yang diperlukan untuk rendering, seperti model dan material.
  • Komponen Tabrakan: Menyimpan data untuk deteksi tabrakan, seperti volume dan bentuk tabrakan.

Sistem menemukan entitas yang memiliki kombinasi spesifik dari komponen, lalu menentukan logika perilaku yang akan diterapkan pada entitas-entitas tersebut berdasarkan data dalam komponen-komponen tersebut.

Manajemen Komponen

Akses Manajemen Komponen melalui menu

image-20251125174607079

image-20251125174656617

Anda juga dapat mengakses antarmuka pengelolaan komponen langsung dari komponen itu sendiri:

image-20251125174644533

image-20251125174720819

Skrip

Menambahkan skrip ke suatu komponen sama dengan menambahkan skrip ke semua entitas yang menggunakan komponen tersebut:

image-20251125175304300

image-20251125175249160

image-20251125175923212

Atribut

Atribut Default

Secara default, sebagian besar komponen sudah memiliki properti default.

image-20251201112745685

Jenis Properti

Properti dikategorikan sebagai read-only atau writable. Properti read-only hanya dapat diakses nilainya dan tidak dapat diubah melalui skrip; properti writable dapat diubah melalui skrip.

image-20251201112959371

Atribut yang Dapat Diedit

image-20251201113027758

Properti read-only

Apakah suatu atribut dapat ditulis juga dapat ditentukan berdasarkan apakah entri properti defaultnya ditandai.

image-20251201113138046

Misalnya, properti posisi objek pemain berbeda dengan properti posisi komponen transform yang digunakan oleh objek lain; properti ini tidak dapat dimodifikasi secara langsung melalui API setProperty. Untuk memindahkan pemain, gunakan API teleportPlayer yang khusus:

image-20251201113836975 image-20251201113913733

Gunakan Set Property API untuk memodifikasi atribut yang dapat ditulis; gunakan Get Property API untuk mengambil nilai properti:

image-20251201120211092

Selain itu, beberapa properti default hanya tersedia di server; mencoba memodifikasi properti tersebut di klien akan menghasilkan kesalahan. Dalam skrip komponen, properti-properti ini secara otomatis difilter berdasarkan platform runtime skrip.

Properti Kustom

Selain properti default yang tersedia, Anda juga dapat menambahkan properti kustom ke komponen. Properti kustom dapat ditulis dan berfungsi sebagai properti dual-platform.

image-20251201141535496

Deteksi Properti Kustom

Anda mungkin telah memperhatikan ikon pemantauan di samping properti kustom:

image-20251201151540296

Mengaktifkan fitur pemantauan ini memicu sistem untuk mengirimkan peristiwa “Perubahan Atribut Kustom” setiap kali nilai atribut berubah, mengikuti logika berikut:

  1. Ketika atribut diubah melalui logika server-side, peristiwa dikirimkan ke server dan klien.
  2. Ketika atribut diubah melalui logika client-side, peristiwa hanya dikirimkan secara lokal.

Peristiwa perubahan atribut kustom ini memungkinkan Anda mendeteksi perubahan dengan lebih mudah, memudahkan penyesuaian logika selanjutnya:

image-20251201152041181

Jika beberapa atribut kustom memiliki deteksi perubahan yang diaktifkan, elemen ID atribut kustom dapat menentukan atribut spesifik mana yang telah berubah:

image-20251201155511248

Saat menggunakan primitif ID properti kustom, jenis komponen harus ditentukan secara manual

Komponen Terkait

Sebuah komponen dapat memiliki beberapa komponen terkait. Kombinasi, referensi, atau ketergantungan antara komponen mendefinisikan batas kemampuan logis dan data entitas.

Misalnya, komponen Player terikat dengan Combatable, Scoreable, dan komponen lain. Entitas Player yang menggunakan komponen Player juga dapat mengakses data dan peristiwa Combatable dan Scoreable.

image-20251201173940400