ผู้จัดการส่วนประกอบ

ส่วนประกอบ

ภายใน 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

ตัวอย่างเช่น คุณสมบัติตำแหน่งของวัตถุผู้เล่นจะแตกต่างจากคุณสมบัติตำแหน่งของคอมโพเนนต์การแปลงที่ใช้โดยวัตถุอื่น ๆ; ไม่สามารถแก้ไขได้โดยตรงผ่าน API setProperty. เพื่อย้ายผู้เล่น คุณควรใช้ API teleportPlayer ที่ออกแบบมาโดยเฉพาะ:

image-20251201113836975

image-20251201113913733
API การตั้งค่าคุณสมบัติ (Set Property API) ช่วยให้สามารถแก้ไขคุณสมบัติที่เขียนได้ ส่วน API การอ่านคุณสมบัติ (Get Property API) ช่วยให้สามารถอ่านค่าคุณสมบัติได้:

image-20251201120211092

นอกจากนี้ คุณสมบัติเริ่มต้นบางอย่างเป็นเฉพาะเซิร์ฟเวอร์เท่านั้น และจะเกิดข้อผิดพลาดหากมีการแก้ไขบนไคลเอนต์ ในสคริปต์ของคอมโพเนนต์ คุณสมบัติเหล่านี้จะถูกกรองโดยอัตโนมัติตามแพลตฟอร์มการทำงานของสคริปต์

คุณสมบัติที่กำหนดเอง

นอกเหนือจากคุณสมบัติเริ่มต้นที่มีอยู่แล้ว คุณยังสามารถเพิ่มคุณสมบัติที่กำหนดเองให้กับคอมโพเนนต์ได้อีกด้วย คุณสมบัติที่กำหนดเองสามารถเขียนได้และทำงานเป็นคุณสมบัติแบบสองทาง

image-20251201141535496

การตรวจสอบคุณสมบัติที่กำหนดเอง

คุณอาจสังเกตเห็นไอคอนการตรวจสอบอยู่ถัดจากคุณสมบัติที่กำหนดเอง:
image-20251201151540296

การเปิดใช้งานคุณลักษณะการตรวจสอบนี้จะทำให้ระบบส่งเหตุการณ์ “การเปลี่ยนแปลงคุณสมบัติที่กำหนดเอง” ทุกครั้งที่ค่าของคุณสมบัติเปลี่ยนแปลง โดยใช้ตรรกะดังต่อไปนี้:

  1. เมื่อคุณสมบัตินั้นถูกแก้ไขผ่านตรรกะฝั่งเซิร์ฟเวอร์ เหตุการณ์จะถูกส่งไปยังทั้งเซิร์ฟเวอร์และไคลเอนต์
  2. เมื่อคุณสมบัตินั้นถูกแก้ไขผ่านตรรกะฝั่งไคลเอนต์ เหตุการณ์จะถูกส่งเฉพาะในเครื่องเท่านั้น
    โดยการใช้เหตุการณ์การเปลี่ยนแปลงคุณสมบัติที่กำหนดเอง คุณสามารถตรวจจับการเปลี่ยนแปลงของคุณสมบัติที่กำหนดเองได้ง่ายขึ้นและแก้ไขตรรกะที่ตามมาได้อย่างเหมาะสม:

image-20251201152041181

หากมีการเปิดใช้งานการตรวจจับการเปลี่ยนแปลงสำหรับแอตทริบิวต์ที่กำหนดเองหลายรายการ องค์ประกอบ ID ของแอตทริบิวต์ที่กำหนดเองสามารถระบุได้อย่างชัดเจนว่าแอตทริบิวต์ใดมีการเปลี่ยนแปลง:

image-20251201155511248

เมื่อใช้ตัวแปรชนิด ID ของคุณสมบัติที่กำหนดเอง จำเป็นต้องระบุชนิดของคอมโพเนนต์ด้วยตนเอง

องค์ประกอบที่เกี่ยวข้อง

องค์ประกอบหนึ่งอาจมีองค์ประกอบที่เกี่ยวข้องหลายองค์ประกอบ องค์ประกอบเหล่านี้จะรวมกัน อ้างอิง หรือพึ่งพาซึ่งกันและกัน ซึ่งช่วยกำหนดขอบเขตด้านตรรกะและความสามารถด้านข้อมูลของเอนทิตี
ตัวอย่างเช่น องค์ประกอบ Player จะเชื่อมโยงกับองค์ประกอบ Combatable, Scoreable และองค์ประกอบที่คล้ายคลึงกัน เอนทิตี Player ที่ใช้องค์ประกอบ Player จะสามารถเข้าถึงข้อมูลและเหตุการณ์ของ Combatable และ Scoreable ได้เช่นกัน

image-20251201173940400