Unity Hybrid ECS với cách cũ


8

Có thể sử dụng Hybrid ECS với một số thành phần và tiêu chuẩn MonoBehaviourvới tất cả mã cũ của bạn không?

Tôi muốn biết vì tôi đã có một số cơ chế trò chơi được xây dựng theo cách "cũ" và tôi muốn xây dựng những cái mới bằng cách sử dụng kết hợp

Câu trả lời:


8

Hoàn toàn có thể kết hợp cả hai phong cách. GameObject tương tự có thể có một số chức năng của nó được triển khai với hệ thống ECS ​​mới và chức năng khác trong các sự kiện MonoBehaviour cổ điển.

Những gì Unity đề xuất trong hướng dẫn ECS của họ trên thực tế là bắt đầu với một dự án sử dụng kiểu cũ và sau đó tìm kiếm các tính năng mà bạn nghĩ sẽ có lợi từ việc tái cấu trúc chúng theo mẫu ECS mới:

Điều này có ý nghĩa gì với trò chơi của tôi?

bạn có thể từng cái một, chuyển đổi hành vi từ các phương thức MonoBehaviour.Update thành ElementSystems. Trên thực tế, bạn có thể giữ tất cả dữ liệu của mình trong MonoBehaviour và trên thực tế đây là một cách rất đơn giản để bắt đầu chuyển đổi sang mã kiểu ECS.

Vì vậy, dữ liệu cảnh của bạn vẫn còn trong GameObjects & các thành phần. Bạn tiếp tục sử dụng GameObject.Instantiate để tạo phiên bản, v.v.

Bạn chỉ cần di chuyển nội dung của MonoBehaviour.Update thành một phương thức ElementSystem.OnUpdate. Dữ liệu được giữ trong cùng một MonoBehaviour hoặc các thành phần khác.

Điều này tất nhiên không sử dụng các lợi ích của hệ thống Jobs mới và khởi tạo các thực thể thông qua EntityManager. Nhưng những tính năng mới này cũng có thể được trộn lẫn và kết hợp với MonoBehaviours cổ điển.

Để biết thêm thông tin về cách chuyển đổi trò chơi từ sử dụng mẫu MonoBehaviour cổ điển sang mẫu ECS, tôi cũng đề xuất loạt video này từ kênh Unity chính thức nơi họ chuyển đổi ví dụ về game bắn súng không gian cũ sang chế độ từng bước theo phong cách mới sử dụng ngày càng nhiều các tính năng mới. Mỗi bước ở giữa hoạt động hoàn hảo. Phiên bản cuối cùng vẫn sử dụng một số đối tượng trò chơi cổ điển, vì một tính năng chưa có sẵn với hệ thống ECS ​​(hiệu ứng hạt).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.