Setting child node props with parent node exported props, and see the effects in the editor

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By mrprimemover

I’m working on a re-usable scene and struggling with what must be a basic pattern in my node hierarchy.

I want to be able to set some values on the root node via the editor (using export vars) and then use those values (plus some additional internal logic) to set the values of child object properties, like the radii of its collision shapes. I’d also like to have these changes visible in the editor for easy debugging.

This script kinda works, but changes only appear in the editor only appear after closing and reopening the tab.

tool
extends Area2D


export var hitbox_radius: float = 10.0
export var hurtbox_radius: float = 10.0
onready var first_collision_shape = $FirstCollisionShape
onready var second_collision_shape = $SecondCollisionShape


func _ready() -> void:
	first_collision_shape.shape.radius = hitbox_radius
    second_collision_shape.shape.radius = hurtbox_radius

I feel like I must be missing a basic pattern here. Is there a better way to achieve this?

tool script will never reach ready() when in editor.
You can use setget function of your exported values to display and calculate your logic whenever exported value is changed.

Inces | 2022-08-16 16:22