Trình quản lý thành phần

Thành phần

Trong Craftland Studio PC, “thành phần” có thể được hiểu là thùng chứa dữ liệu.
Một thực thể bản thân nó chỉ là một dấu hiệu trống, những gì nó có thể làm và cách nó hoạt động hoàn toàn phụ thuộc vào những thành phần được gắn vào nó.

  • Thành phần di chuyển: chỉ lưu trữ dữ liệu liên quan đến di chuyển, ví dụ như tốc độ di chuyển, hướng di chuyển.
  • Thành phần hiển thị: lưu trữ dữ liệu cần thiết cho hiển thị, ví dụ như mô hình, vật liệu.
  • Thành phần va chạm: lưu trữ dữ liệu dùng để phát hiện va chạm, ví dụ như thể tích va chạm, hình dạng.

Hệ thống sẽ tìm kiếm các thực thể có tổ hợp thành phần cụ thể, sau đó dựa trên dữ liệu trong các thành phần này để quyết định thực hiện hành vi logic nào đối với các thực thể này.

Quản lý thành phần

Bạn có thể truy cập quản lý thành phần từ menu

image-20251125174607079

image-20251125174656617

Từ thành phần, bạn cũng có thể truy cập trực tiếp vào giao diện quản lý thành phần đó:

image-20251125174644533

image-20251125174720819

Tập lệnh

Để gắn kịch bản cho thành phần, tương đương với việc gắn kịch bản cho tất cả các thực thể sử dụng thành phần đó:

image-20251125175304300

image-20251125175249160

image-20251125175923212

Thuộc tính

Thuộc tính mặc định

Theo mặc định, hầu hết các thành phần đều có thuộc tính mặc định.

image-20251201112745685

Loại thuộc tính

Thuộc tính được chia thành thuộc tính chỉ đọc và thuộc tính có thể ghi, thuộc tính chỉ đọc chỉ có thể truy vấn giá trị, không thể sửa đổi bằng tập lệnh; thuộc tính có thể ghi có thể sửa đổi bằng tập lệnh.

image-20251201112959371

Thuộc tính có thể ghi

image-20251201113027758

Thuộc tính chỉ đọc

Có thể xác định thuộc tính có thể ghi được hay không thông qua việc mục thuộc tính mặc định có được đánh dấu hay không.

image-20251201113138046

Ví dụ, thuộc tính vị trí của người chơi khác với thuộc tính vị trí của thành phần transform được sử dụng bởi các đối tượng khác, không thể sửa đổi trực tiếp bằng cách thiết lập API thuộc tính. Nếu muốn di chuyển người chơi, nên sử dụng API truyền người chơi được tạo riêng:

image-20251201113836975 ![image-20251201113913733] (https://dl.dir.freefiremobile.com/common/OB46/CSH/OfficialWeb/44_Component/image-20251201113913733.png)

Sử dụng API thiết lập thuộc tính để sửa đổi thuộc tính có thể ghi; sử dụng API lấy thuộc tính để đọc giá trị thuộc tính:

image-20251201120211092

Ngoài ra, một số thuộc tính mặc định chỉ được sử dụng trên máy chủ, nếu cố gắng sửa đổi trên máy khách sẽ báo lỗi. Trong kịch bản đồ họa, các thuộc tính này sẽ được tự động lọc theo nền tảng chạy kịch bản.

Thuộc tính tùy chỉnh

Ngoài các thuộc tính mặc định mở, quý vị cũng có thể thêm thuộc tính tùy chỉnh cho thành phần, các thuộc tính tùy chỉnh đều có thể ghi và là thuộc tính hai chiều.

image-20251201141535496

Kiểm tra thuộc tính tùy chỉnh

Có thể quý vị đã nhận thấy, sau thuộc tính tùy chỉnh có một biểu tượng giám sát:

image-20251201151540296

Khi bật tính năng giám sát này, khi thuộc tính tùy chỉnh thay đổi giá trị, hệ thống sẽ gửi một sự kiện liên quan đến “thay đổi thuộc tính tùy chỉnh” theo logic sau.

  1. Khi thuộc tính này được sửa đổi trên logic máy chủ, sự kiện sẽ được gửi đến máy chủ và máy khách.
  2. Khi thuộc tính này được sửa đổi trên logic máy khách, sự kiện sẽ chỉ được gửi đến máy khách.

Thông qua sự kiện thay đổi thuộc tính tùy chỉnh, quý vị có thể dễ dàng phát hiện sự thay đổi của thuộc tính tùy chỉnh hơn, từ đó chỉnh sửa logic tiếp theo:

image-20251201152041181

Nếu có nhiều thuộc tính tùy chỉnh được bật tính năng phát hiện thay đổi, thì bạn có thể xác định thuộc tính cụ thể nào đã thay đổi thông qua ID thuộc tính tùy chỉnh:

image-20251201155511248

Khi sử dụng ID thuộc tính tùy chỉnh, cần chỉ định thủ công loại thành phần

Thành phần liên quan

Một thành phần có thể có nhiều thành phần liên quan, các thành phần kết hợp, tham chiếu hoặc phụ thuộc lẫn nhau, từ đó xác định ranh giới khả năng của một thực thể về mặt logic và dữ liệu.

Ví dụ: thành phần Player được liên kết với các thành phần Combatable, Scoreable, v.v., thực thể người chơi sử dụng thành phần Player cũng có thể sử dụng dữ liệu và sự kiện của Combatable, Scoreable.

image-20251201173940400