Đây là một bản phác thảo rất sơ bộ về cách tôi hiện đang có những thứ được thiết kế. Ít nhất, nó nên đưa ra ý tưởng về cách ECS của tôi hiện được thiết kế.
Nếu bạn chú ý trong sơ đồ đó, về cơ bản tôi đã tách HUD ra khỏi ECS. Họ có tập hợp các thứ riêng (HudLayer, HudComponent, v.v.) và được xử lý khác nhau. Đây là nơi tôi đang vật lộn, mặc dù.
Có nhiều trường hợp khác nhau trong đó HUD sẽ cần biết về các thực thể. Không chỉ thay đổi dữ liệu (tôi có một bộ điều phối sự kiện cho điều đó), nhưng thực thể thực tế và tất cả những gì nó bao gồm. Cũng có những tình huống mà các thực thể sẽ cần có thể truy vấn HUD để lấy dữ liệu. Hãy lấy một vài ví dụ:
Đầu tiên, màn hình thiết bị của tôi. Ở đây tôi có thể thay đổi thiết bị trên một nhân vật (Thực thể). Để điều này xảy ra, tôi cần biết về thực thể. Ít nhất tôi nghĩ tôi sẽ làm được? Làm thế nào tôi có thể xử lý này?
Kịch bản thứ hai liên quan đến Hệ thống của tôi cần truy vấn HudComponent để lấy dữ liệu. Một ví dụ cụ thể sẽ là hệ thống chiến đấu của tôi. Mỗi "đội" được cung cấp một lưới 3x3 mà họ có thể di chuyển xung quanh. Xem tại đây:
Các kỹ năng nhắm mục tiêu vào các ô này chứ không phải người chơi, vì vậy tôi sẽ cần một cách để các hệ thống của tôi xác định ô nào bị chiếm và ô nào không. Về cơ bản tôi cần một cách để liên lạc hai chiều giữa Hệ thống và HUD của tôi. Tôi biết rằng dù sao đi nữa (bởi một số người, dù sao đi nữa) hãy đưa HUD của bạn ra khỏi ECS. Điều đó có phù hợp trong trường hợp của tôi không?