LCCObject::intersectsRayFromOriginExt
カスタムの原点と方向を使用するコリジョンボディベースのレイキャスト。
バージョン要件
SDK v0.5.0+
エンジンサポート
Three.js
API
LCCObject::intersectsRayFromOriginExt(param: IntersectsRayFromOriginExtParam): IntersectsResult | null
パラメータ
| パラメータ | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
param.origin | { x: number, y: number, z: number } | はい | - | レイの原点。 |
param.direction | { x: number, y: number, z: number } | はい | - | レイの方向。 |
param.maxDistance | number | はい | - | 検出距離(メートル単位)。 |
戻り値
成功時は point と normal を含むオブジェクトを返します。失敗時は null を返します。
| プロパティ | 型 | 説明 |
|---|---|---|
point | { x: number, y: number, z: number } | ワールド空間でのコリジョンポイント座標。 |
normal | { x: number, y: number, z: number } | ワールド空間でのコリジョンポイント法線。 |
使用例
const ret = lccObject.hasCollision();
if (ret) {
const origin = { x: 10, y: 10, z: 10 };
const direction = { x: 1, y: 0, z: 0 };
const maxDistance = 10;
let result = lccObject.intersectsRayFromOriginExt({ origin, direction, maxDistance });
if (result) {
console.log('point: ', result.point.x, result.point.y, result.point.z);
console.log('normal: ', result.normal.x, result.normal.y, result.normal.z);
} else {
// No point detected
}
} else {
// Collision function not supported
}
注意事項
- このメソッドは
LCCRender.load()の成功コールバックが発生した後に呼び出す必要があります。 - 使用前に
hasCollision()でコリジョンのサポートを確認してください。 - SDK はカメラ位置の近傍のコリジョンデータのみを読み込みます。
関連 API
LCCObject::hasCollision()LCCObject::intersectsRayExt()LCCObject::raycastFromOrigin()