مدير المكونات

المكونات

في Craftland Studio PC، يمكن فهم ”المكون“ على أنه حاوية للبيانات.
الكيان نفسه هو مجرد معرف فارغ؛ ما يمكنه فعله وكيف يتصرف يعتمد كليًا على المكونات المرتبطة به.

  • مكون الحركة: يخزن فقط البيانات المتعلقة بالحركة، مثل سرعة الحركة واتجاهها.
  • مكون العرض: يخزن البيانات المطلوبة للعرض، مثل النماذج والمواد.
  • مكون التصادم: يخزن البيانات الخاصة باكتشاف التصادم، مثل أحجام وأشكال التصادم.

يقوم النظام بتحديد الكيانات التي تمتلك مجموعات محددة من المكونات، ثم يحدد منطق السلوك الذي سيتم تطبيقه على هذه الكيانات بناءً على البيانات الموجودة داخل تلك المكونات.

إدارة المكونات

يمكنك الوصول إلى إدارة المكونات عبر القائمة

image-20251125174607079

image-20251125174656617

يمكنك أيضًا الوصول إلى واجهة إدارة المكون مباشرةً من المكون نفسه:

image-20251125174644533

image-20251125174720819

البرامج النصية

إن تثبيت البرامج النصية على أحد المكونات يعادل تثبيت البرامج النصية على جميع الكيانات التي تستخدم هذا المكون:

image-20251125175304300

image-20251125175249160

image-20251125175923212

السمات

السمات الافتراضية

بشكل افتراضي، تمتلك معظم المكونات خصائص افتراضية بالفعل.

image-20251201112745685

أنواع الخصائص

تصنف الخصائص إلى قابلة للقراءة فقط أو قابلة للكتابة. لا يمكن الاستعلام عن قيم الخصائص القابلة للقراءة فقط ولا يمكن تعديلها عبر البرمجة النصية؛ أما الخصائص القابلة للكتابة فيمكن تعديلها عبر البرمجة النصية.

image-20251201112959371

الخصائص القابلة للكتابة

image-20251201113027758

خصائص للقراءة فقط

يمكن أيضًا تحديد ما إذا كانت السمة قابلة للكتابة من خلال ما إذا كان إدخال الخاصية الافتراضية مظللًا أم لا.

image-20251201113138046

على سبيل المثال، تختلف خاصية الموضع لكائن المشغل عن خاصية الموضع لمكون التحويل المستخدم من قبل كائنات أخرى؛ ولا يمكن تعديلها مباشرة عبر واجهة برمجة التطبيقات setProperty. لنقل المشغل، يجب استخدام واجهة برمجة التطبيقات teleportPlayer المخصصة:

image-20251201113836975 image-20251201113913733

استخدم واجهة برمجة التطبيقات Set Property API لتعديل السمات القابلة للكتابة؛ واستخدم واجهة برمجة التطبيقات Get Property API لاسترداد قيم السمات:

image-20251201120211092

بالإضافة إلى ذلك، بعض الخصائص الافتراضية مخصصة للخادم فقط؛ ومحاولة تعديلها على العميل ستؤدي إلى حدوث خطأ. في نصوص المكونات، يتم تصفية هذه الخصائص تلقائيًا استنادًا إلى نظام تشغيل النص.

الخصائص المخصصة

بالإضافة إلى الخصائص الافتراضية المتاحة، يمكنك أيضًا إضافة خصائص مخصصة إلى المكونات. الخصائص المخصصة قابلة للكتابة وتعمل كخصائص ثنائية النظام.

image-20251201141535496

اكتشاف الخصائص المخصصة

ربما لاحظت وجود رمز مراقبة بجوار الخصائص المخصصة:

image-20251201151540296

يؤدي تمكين ميزة المراقبة هذه إلى قيام النظام بإرسال حدث ”تغيير خاصية مخصصة“ كلما تغيرت قيمة الخاصية، وفقًا للمنطق التالي:

  1. عندما يتم تعديل الخاصية عبر منطق جانب الخادم، يتم إرسال الحدث إلى كل من الخادم والعميل.
  2. عندما يتم تعديل الخاصية عبر منطق جانب العميل، يتم إرسال الحدث محليًا فقط.

يتيح حدث تغيير الخاصية المخصصة هذا اكتشافًا أكثر كفاءة لتغييرات الخاصية، مما يسمح بتعديل المنطق اللاحق وفقًا لذلك:

image-20251201152041181

إذا تم تمكين اكتشاف التغييرات لعدة سمات مخصصة، يمكن لعنصر معرف السمة المخصصة تحديد السمة المحددة التي تم تغييرها:

image-20251201155511248

عند استخدام عنصر ID الخاص بالخاصية المخصصة، يجب تحديد نوع المكون يدويًا

المكونات المرتبطة

قد يحتوي المكون على عدة مكونات مرتبطة. تحدد التركيبة أو المراجع أو التبعيات بين المكونات حدود القدرة المنطقية والبيانات للكيان.

على سبيل المثال، يرتبط مكون Player بمكونات Combatable و Scoreable ومكونات أخرى. يمكن لكيانات Player التي تستخدم مكون Player الوصول أيضًا إلى بيانات وأحداث Combatable و Scoreable.

image-20251201173940400