Shape Queries
Overlap dotazy
Pozice označuje střed dotazovaného tvaru. Rozměry Boxu jsou celé velikosti; výška Capsule je celková výška včetně konců a musí být větší než dvojnásobek poloměru. Pozici chodidel Characteru nepoužívejte jako střed Capsule bez odpovídajícího výškového posunu.
jolt_overlap_box(x, y, z, width, depth, height, options=undefined)
jolt_overlap_sphere(x, y, z, radius, options=undefined)
jolt_overlap_capsule(x, y, z, height, radius, options=undefined)
jolt_overlap_shape(shape, x, y, z, options=undefined)| API | Chování |
|---|---|
| clear / overlap | Nepřítomnost/přítomnost zásahů; vyhodnocujte pouze při error_code rovném nule. |
| count / hits | Jeden nejhlubší kontakt na cílové těleso, nejvýše do kapacity světa 4096 těles. Pořadí podle vzdálenosti není garantováno. |
| error_code / error_message | Nula a prázdná zpráva při úspěchu, včetně platného výsledku bez kolize. |
var r = jolt_overlap_sphere(0, 0, 2, 0.5);
if (r.error_code == 0) {
for (var i = 0; i < r.count; ++i) {
show_debug_message(r.hits[i].penetration_depth);
}
}Ověřené kontrakty operací#
Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.
| Symbol / vlastník | Signatura | Kontrakt operace |
|---|---|---|
| jolt_overlap_box | jolt_overlap_box(x, y, z, width, depth, height, options = undefined) | Okamžitý překryv bez vytvoření Body, světová pozice m. Box plné kladné rozměry, sphere radius>0, capsule totalheight>2radius; generic živý nestatic-only JoltShape. Options rotation XYZW/rotation_euler°(má přednost), layers/mask/ignore. Výsledek struct {clear, overlap, hit, count, hits, error_code, error_message}; při chybě může clear být true, proto vždy ověř error_code. |
| jolt_overlap_capsule | jolt_overlap_capsule(x, y, z, height, radius, options = undefined) | Okamžitý překryv bez vytvoření Body, světová pozice m. Box plné kladné rozměry, sphere radius>0, capsule totalheight>2radius; generic živý nestatic-only JoltShape. Options rotation XYZW/rotation_euler°(má přednost), layers/mask/ignore. Výsledek struct {clear, overlap, hit, count, hits, error_code, error_message}; při chybě může clear být true, proto vždy ověř error_code. |
| jolt_overlap_shape | jolt_overlap_shape(shape, x, y, z, options = undefined) | Okamžitý překryv bez vytvoření Body, světová pozice m. Box plné kladné rozměry, sphere radius>0, capsule totalheight>2radius; generic živý nestatic-only JoltShape. Options rotation XYZW/rotation_euler°(má přednost), layers/mask/ignore. Výsledek struct {clear, overlap, hit, count, hits, error_code, error_message}; při chybě může clear být true, proto vždy ověř error_code. |
| jolt_overlap_sphere | jolt_overlap_sphere(x, y, z, radius, options = undefined) | Okamžitý překryv bez vytvoření Body, světová pozice m. Box plné kladné rozměry, sphere radius>0, capsule totalheight>2radius; generic živý nestatic-only JoltShape. Options rotation XYZW/rotation_euler°(má přednost), layers/mask/ignore. Výsledek struct {clear, overlap, hit, count, hits, error_code, error_message}; při chybě může clear být true, proto vždy ověř error_code. |