LCCObject::intersectsCapsule
Kapsel-Kollisionstest.
Kann zur Implementierung von Kollisionsfunktionen für digitale Menschen verwendet werden.
Versionsanforderung
SDK v0.4.1+
Engine-Unterstützung
Three.js
API
LCCObject::intersectsCapsule(param: IntersectsCapsuleParam): IntersectsCapsuleResult
Parameter
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
param.start | { x: number, y: number, z: number } | Ja | - | Unterer Punkt der Kapsel. |
param.end | { x: number, y: number, z: number } | Ja | - | Oberer Punkt der Kapsel. |
param.radius | number | Ja | - | Kapselradius. |
param.noDelta | boolean | Nein | - | Bei true wird der Kollisionsversatz nicht berechnet (schnellere Erkennung); bei false wird der Versatz berechnet. |
Rückgabewert
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
hit | boolean | Ob eine Kollision aufgetreten ist. |
delta | { x: number, y: number, z: number } | Kollisionsversatz, nützlich zur Anpassung der Position des digitalen Menschen. Richtung zeigt zur Kapsel. Nur gültig wenn noDelta false ist. |
Verwendungsbeispiel
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
}
Hinweise
- Diese Methode muss nach dem Auslösen des Erfolgs-Callbacks von
LCCRender.load()aufgerufen werden. - Prüfen Sie vor der Verwendung die Kollisionsunterstützung über
hasCollision(). - Das SDK lädt nur Kollisionsdaten in der Nähe der Kameraposition.
Verwandte APIs
LCCObject::hasCollision()LCCObject::intersectsSphere()