LCCObject::intersectsRayExt
基於碰撞體的射線檢測,支持通過屏幕點擊獲取坐標位置。
版本要求
SDK v0.5.0+
引擎支持
Three.js
API
LCCObject::intersectsRayExt(param: IntersectsRayExtParam): IntersectsResult | null
參數
| 參數 | 類型 | 必選 | 默認值 | 描述 |
|---|---|---|---|---|
param.evt | MouseEvent / PointerEvent | 是 | - | 鼠標點擊事件。 |
param.maxDistance | number | 是 | - | 檢測距離,單位為米。 |
返回值
檢測成功時返回包含 point 和 normal 的對象;檢測失敗時返回 null。
| 屬性 | 類型 | 描述 |
|---|---|---|
point | { x: number, y: number, z: number } | 碰撞點坐標,世界坐標空間的值。 |
normal | { x: number, y: number, z: number } | 碰撞點法線,世界坐標空間的值。 |
使用示例
const cond = lccObject.hasCollision();
if (cond) {
document.addEventListener('mousedown', (evt) => {
let ret = lccObject.intersectsRayExt({ evt: evt, maxDistance: 10 });
if (ret) {
console.log('point: ', ret.point.x, ret.point.y, ret.point.z);
console.log('normal: ', ret.normal.x, ret.normal.y, ret.normal.z);
} else {
// No point detected
}
});
} else {
// Collision function not supported
}
注意事項
- 此接口需在
LCCRender.load()的成功回調函數觸發後調用。 - 使用前應先通過
hasCollision()查詢是否支持碰撞檢測。 - SDK 只加載相機位置附近範圍的碰撞數據。
相關 API
LCCObject::hasCollision()LCCObject::intersectsRayFromOriginExt()LCCObject::raycast()