Minden egyes Collider, Collider2D és Renderer komponensnek lekérdezhető hogy milyen térrészen belül helyezkedik el. Ezen térrész egy olyan téglatest, aminek minden éle párhuzamos a globális koordinátarendszer egyik tengelyével.
A Bound típus
Ezen befoglaló téglatestet egy Bounds típus írja le. Egy Bound példánynak van egy Vector3 középpontja (.center) és egy kiterjedése a tér három dimenziójában (.size), ami szintén Vector3 típusú.
Nézzük meg mit rajzol ki a fenti metódus!
Ezen befoglaló téglatestet használja fel a fizikai és a render-motor sok-sok optimalizálásra. Például azz Occlusion Culling folyamata eldob minden olyan objektumot a renderelésnél, aminek a befoglaló doboza nem érintkezik a kamera terével és ezt jóval gyorsabb kiszámolni, mint arra tesztelni, hogy a megjelenített mesh pontosan benne van-e a látótérben.
Pár hasznos művelet Bound-okkal:
Saját magunk is létrehozhatunk egy Bound típust és használhatjuk bármire.
Például az alábbi kód egy beállítható [SerializeField] Bounds térrészen belül készít akárhány másolatot egy prototípusként megadott objektumból.
Ebből látható, hogy valójában a Bound típusú objektum az (egyes tengelyenkénti) fél-méretet (.extent) tárolja el, de lekérhető is a teljes méret (.size) is egy Property-n keresztül.
Hogy ez mire volt jó?… Hát azt én sem tudom. 🤷 Csak érzékeltetni akartam a Bounds típus működését.
A Rect típus
A Rect, azaz Rectangle/Téglalap egy típus, ami tekinthető a Bound megfelelőjének a 2D síkon, mivel a Rect objektum pozíciója és mérete is egyaránt Vector2 típusú. A Rect főleg a UI felületek kirajzolásához hasznos. Lásd később: Unity UI (Félkész…)