30/09/2018, 19:16
Thắc mắc về Layer trong Unity
Cho mình hỏi Layer trong Unity là gì vậy? Sự khác nhau giữa Layer và Tag? Mình có tham khảo tài liệu của Unity rồi nhưng còn khá mơ hồ, mong các bác giải thích hộ mình
Bài liên quan
Mình không có xem qua lý thuyết nhưng qua quá trình làm thì mình thấy: Tag là để phân loại, còn Layer thì cũng dùng để phân loại để hiển thị trong màn chơi Nếu hiểu sai nhờ cao nhân chỉnh sửu giúp
Bạn nói rõ hơn nữa được không
Lên Youtube xem cho rõ đi bác, cái tag mới chỉ thấy để bắt va chạm, còn Layer để chọn những vật có được xuất hiện trong game hay bị ẩn đi.
Tag là nhóm, chỉ đơn thuần để nhóm các object có chung đặc điểm lại với nhau. Ví dụ có nhiều loại enemy thì có thể nhóm lại thành Enemy, rồi ground thì có thể có nhiều loại tile khác nhau, nhóm chung lại thành tag Ground, hay nhiều loại Weapon, thậm chí có thể xài thêm EnemyWeapon. Xài tag thì dễ check trong OnCollisionEnter2D(Collider coll), chỉ cần kiểm tra tag của coll là biết va chạm với Ground hoặc Enemy. Nếu ko có thì chắc phải if else cả chục lần để kiểm tra Có thể đặt tên object theo kiểu Ground_Stone, Ground_Dirt, Enemy_Orc, Enemy_Goblin, Weapon_Arrow, Weapon_Bullet, Weapon_Sword rồi check cái tên này có contain Enemy hay Ground hay Weapon ko, thì thôi chế ra thêm cái tag rồi xài tag để cái tên nó ngắn lại.
Layer thì liên quan tới collision và rendering order, tức là có thể kiểm soát layer này có va chạm vói layer kia hay ko: http://docs.unity3d.com/Manual/LayerBasedCollision.html. Ngoài ra còn dùng để xếp thứ tự vẽ trước sau: https://unity3d.com/learn/tutorials/modules/beginner/2d/sorting-layers, ví dụ Background vẽ trước, rồi tới object tĩnh, tạm gọi la Foreground1, rồi tới object động Foreground2, như vậy thì Background sẽ nằm sau cùng, rồi tới Foreground1, còn Foreground2 sẽ luôn luôn ở phía trước.