if you are near him and can see you it will look at you
authorEduardo <[email protected]>
Sat, 10 Feb 2024 01:16:35 +0000 (02:16 +0100)
committerEduardo <[email protected]>
Sat, 10 Feb 2024 01:16:35 +0000 (02:16 +0100)
enemies/base_enemy.gd

index eae2a620f744f3cb2c288d02dc8df13603471402..4df2b35661c5ca40cc8f4e2ba43ae4b4d5b690a9 100644 (file)
@@ -25,3 +25,23 @@ func _physics_process(delta):
                # look at player
                pivot.look_at(player.global_transform.origin, Vector3.UP)
                rotate_y(deg_to_rad(pivot.rotation.y * turn_speed))
+
+       elif distance_to_player < 25 && can_see_player():
+               pivot.look_at(player.global_transform.origin, Vector3.UP)
+               rotate_y(deg_to_rad(pivot.rotation.y * turn_speed))
+
+
+func can_see_player():
+       var space_state = get_world_3d().get_direct_space_state()
+       var params = PhysicsRayQueryParameters3D.new()
+       params.from = global_transform.origin + Vector3.UP
+       params.to = player.global_transform.origin
+       params.exclude = []
+
+       params.collision_mask = 1
+       var result = space_state.intersect_ray(params)
+
+       if result:
+               return true
+       else:
+               return false