- Edited
This is how I usually do it:
public partial class DamageArea : Area3D
{
[Export]
public int Damage { get; private set; }
public override void _Ready()
{
BodyEntered += OnBodyEntered;
}
public void OnBodyEntered(Node3D body)
{
if (body is Character) // Character is my class that extends CharacterBody3D that has a health component
{
GD.Print(body);
Character character = (Character)body;
character.Health.TakeDamage(Damage);
}
}
}