LCCObject::intersectsCapsule
Prueba de colisión con cápsula.
Puede utilizarse para implementar funciones de colisión de humanos digitales.
Requisito de versión
SDK v0.4.1+
Compatibilidad de motor
Three.js
API
LCCObject::intersectsCapsule(param: IntersectsCapsuleParam): IntersectsCapsuleResult
Parámetros
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
param.start | { x: number, y: number, z: number } | Sí | - | Punto inferior de la cápsula. |
param.end | { x: number, y: number, z: number } | Sí | - | Punto superior de la cápsula. |
param.radius | number | Sí | - | Radio de la cápsula. |
param.noDelta | boolean | No | - | Cuando es true, no se calcula el desplazamiento de colisión para una detección más rápida; cuando es false, se calcula el desplazamiento. |
Valor de retorno
| Propiedad | Tipo | Descripción |
|---|---|---|
hit | boolean | Si ocurrió una colisión. |
delta | { x: number, y: number, z: number } | Desplazamiento de colisión, útil para ajustar la posición del humano digital. La dirección apunta hacia la cápsula. Solo válido cuando noDelta es false. |
Ejemplo de uso
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
}
Notas
- Este método debe llamarse después de que se haya activado el callback de éxito de
LCCRender.load(). - Verifique el soporte de colisiones mediante
hasCollision()antes de usarlo. - El SDK solo carga datos de colisión en las proximidades de la posición de la cámara.
APIs relacionadas
LCCObject::hasCollision()LCCObject::intersectsSphere()