23 lines
653 B
GDScript
23 lines
653 B
GDScript
extends Camera3D
|
|
|
|
func _ready() -> void:
|
|
GameEngine.getGE().mainCamera = self
|
|
|
|
func getMouseRayCast() -> Vector3:
|
|
var mousePos: Vector2 = get_viewport().get_mouse_position()
|
|
var originPoint: Vector3 = self.project_ray_origin(mousePos)
|
|
var directionVec: Vector3 = self.project_ray_normal(mousePos)
|
|
|
|
var rayLen: float = self.far
|
|
var endPoint: Vector3 = originPoint + directionVec * rayLen
|
|
|
|
var spaceState = get_world_3d().direct_space_state
|
|
var query = PhysicsRayQueryParameters3D.create(originPoint, endPoint)
|
|
var result = spaceState.intersect_ray(query)
|
|
|
|
if not result.is_empty():
|
|
return result["position"]
|
|
else:
|
|
return Vector3.INF
|
|
|