Despite me using the 'collider' string with the physics ray query when I try to get the collider from the result unlike with position it complains you can't get a collider from the dictionary which means despite me defining the result of the query as a collider that's not what is happening.
Any ideas? I bet it's going to be something obvious lol it always is, meanwhile I don't get any complaints from the debugger if I get the position this way.
var spaceState = get_world_3d().direct_space_state
var mousePosition = get_viewport().get_mouse_position()
var raycastOrigin = playerCamera.project_ray_origin(mousePosition)
var raycastTarget = raycastOrigin + playerCamera.project_ray_normal(mousePosition) * rayLength
var physicsRaycastQuery = PhysicsRayQueryParameters3D.create(raycastOrigin, raycastTarget)
raycastCollisionResult = spaceState.intersect_ray(physicsRaycastQuery)
raycastPositionResult = spaceState.intersect_ray(physicsRaycastQuery)
if raycastCollisionResult.is_empty():
return
elif not raycastCollisionResult.is_empty():
raycastCollisionResult["collider"]
if raycastPositionResult.is_empty():
return
elif not raycastPositionResult.is_empty():
raycastPositionResult["position"]
if Input.is_action_just_pressed("RightClick") && mouseInteractionEnabled && isPlayerArmySelected == true && currentPlayerArmy.canClickNewPath == true:
if raycastCollisionResult.get_collider().is_in_group("Floor"):
previousPlayerArmyPosition = global_transform.origin
clickPosition = raycastPositionResult.position
currentPlayerArmy.playerArmyAgent.set_target_location(clickPosition)
currentPlayerArmy.clickPosition = clickPosition
currentPlayerArmy.canClickNewPath = false