Gắn entity vào một entity cha: vũ khí trong tay nhân vật, bánh xe của xe. Tiếp...
#include <_comps.h>
Các thuộc tính Public | |
| entt::entity | parent = entt::null |
| Entity cha. | |
| transform | local {} |
| Vị trí, góc xoay, tỉ lệ so với cha. | |
| bool | destroy_with_parent = true |
| Hủy cùng cha. | |
Gắn entity vào một entity cha: vũ khí trong tay nhân vật, bánh xe của xe.
Cần một transform trên cùng entity. Module hierarchy của engine ghi đè transform đó mỗi frame bằng transform của cha kết hợp với local, trong phase_post_update (trước animation, particle và lúc vẽ). Muốn di chuyển entity con thì sửa local, không sửa transform của nó.
Cha cũng có thể là con của entity khác; engine cập nhật từ gốc xuống. Khi cha bị hủy, con bị hủy theo, trừ khi destroy_with_parent là false: khi đó con được tách ra và đứng yên ở vị trí cuối cùng.
System trong phase_update đọc transform của con sẽ thấy giá trị của frame trước. Cần vị trí chính xác ngay thì dùng transform_combine().