FPS Controller
This commit is contained in:
23
demo/assets/scripts/destructable/camera.gd
Normal file
23
demo/assets/scripts/destructable/camera.gd
Normal file
@@ -0,0 +1,23 @@
|
||||
extends Camera3D
|
||||
|
||||
signal wall_hit(wall_id, position, cutter)
|
||||
|
||||
func shoot_ray() -> Dictionary:
|
||||
var mouse_position = get_viewport().get_mouse_position()
|
||||
var ray_length = 1000
|
||||
var from = project_ray_origin(mouse_position)
|
||||
var to = from + project_ray_normal(mouse_position) * ray_length
|
||||
var space = get_world_3d().direct_space_state
|
||||
var ray_query = PhysicsRayQueryParameters3D.new()
|
||||
ray_query.from = from
|
||||
ray_query.to = to
|
||||
var raycast_result = space.intersect_ray(ray_query)
|
||||
|
||||
return raycast_result
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("left_click"):
|
||||
var query_result = shoot_ray()
|
||||
if query_result:
|
||||
var cutter: PackedVector2Array = Cutter.circleCutter()
|
||||
wall_hit.emit(query_result["collider_id"], query_result["position"], cutter)
|
||||
Reference in New Issue
Block a user