LCCObject::intersectsCapsule
Test di collisione con capsula.
Può essere utilizzato per implementare funzionalità di collisione per umani digitali.
Requisito di versione
SDK v0.4.1+
Supporto motore
Three.js
API
LCCObject::intersectsCapsule(param: IntersectsCapsuleParam): IntersectsCapsuleResult
Parametri
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
param.start | { x: number, y: number, z: number } | Sì | - | Punto inferiore della capsula. |
param.end | { x: number, y: number, z: number } | Sì | - | Punto superiore della capsula. |
param.radius | number | Sì | - | Raggio della capsula. |
param.noDelta | boolean | No | - | Quando true, l'offset di collisione non viene calcolato per un rilevamento più rapido; quando false, l'offset viene calcolato. |
Valore di ritorno
| Proprietà | Tipo | Descrizione |
|---|---|---|
hit | boolean | Se si è verificata una collisione. |
delta | { x: number, y: number, z: number } | Offset di collisione, utile per regolare la posizione dell'umano digitale. La direzione punta verso la capsula. Valido solo quando noDelta è false. |
Esempio di utilizzo
const ret = lccObject.hasCollision();
if (ret) {
const start = { x: 10, y: 10, z: 0 };
const end = { x: 10, y: 10, z: 1.7 };
const radius = 1;
const noDelta = false;
let intersectResult = lccObject.intersectsCapsule({ start, end, radius, noDelta });
if (intersectResult.hit) {
console.log('Collision occurs, delta: ', intersectResult.delta);
}
} else {
// Collision function not supported
}
Note
- Questo metodo deve essere chiamato dopo che il callback di successo di
LCCRender.load()è stato attivato. - Verificare il supporto alla collisione tramite
hasCollision()prima dell'uso. - L'SDK carica solo i dati di collisione nelle vicinanze della posizione della camera.
API correlate
LCCObject::hasCollision()LCCObject::intersectsSphere()