Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | turtilla955 |
right now in my shooter game im using this code to damage enemys:
func _process(_delta):
if $Camera3D/RayCast3D.is_colliding() and get_hit >= 1:
var target = $Camera3D/RayCast3D.get_collider()
if target.is_in_group("enemy"):
print("hit")
emit_signal("damage", damage_value)
get_hit = 0
and this to recive the damage:
func _physics_process(delta):
if health <= 0 and not respawning:
respawning = true
$CharacterBody3D.hide()
$respawn_timer.start()
#when on_player_damage signal is emited
func _on_player_damage(value):
health -= value
this works when there is only one enemy. but the problems start when there is 2. if i attack the 2nd enemy the first one dies. im geussing its because the signal still sends to the original enemy. how can i make it so the signal only sends to the enemy that is being hit?