RayCast
作成日
更新日
RayCast(レイキャスト)は2Dまたは3D空間において、1本の線(レイ)を飛ばし、何かにぶつかるかどうかを検出する技術である。ゲーム開発でよく使われる。
Godotでは、物理演算やコリジョン判定、視線チェックなどに使える。
GodotにおけるRayCastの使い方(2D)
PhysicsRayQueryParameters2D.create(from, to, collision_mask)
を使ってパラメータを生成する。get_tree().root.world_2d.direct_space_state.intersect_ray(query)
を使ってレイを飛ばす。- 衝突があれば情報(辞書)が返り、なければ空の辞書が返る。
var query = PhysicsRayQueryParameters2D.create(from, to, 1) # 1はlayer(ビット0)
var result = get_tree().root.world_2d.direct_space_state.intersect_ray(query)
if result.is_empty():
# 衝突なし
else:
# 衝突あり。result["position"], result["collider"]などが取得可能
collision_maskのビット指定が必要:
- レイヤー1を指定 →
1
- レイヤー20なら
1 << 19
(ビット19をシフト)

公開日
更新日