![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | rico345100 |
I have two scripts, first is AsteroidSpawner script that literally spawns object named Asteroid, and second is HUD that control all UI related stuffs.
There are some labels in UI, so I used onready to get those nodes:
extends CanvasLayer
class_name HUD
onready var asteroids_label = $Control/RightContainer/AsteroidCountLabel
func set_asteroids_label(value: float):
asteroids_label.text = "Asteroids: " + str(value)
pass
However, when I try to access HUD script, with set_asteroid_label, it gives me null error:
var spawned_asteroids: Array = []
onready var hud: HUD = get_tree().get_root().find_node("HUD", true, false)
func _ready():
spawn_asteroids()
func spawn_asteroids():
... spawn asteroid ...
spawned_asteroids.push_back(asteroid_instance)
hud.set_asteroids_label(spawned_asteroids.size()) # UPDATE HUD
Invalid set index ‘text’ (on base: ‘Nil’) with value of type ‘String’
I guess that HUD is not ready, but AsteroidSpawner script try to accessing it, wasn’t it? Then how should I wait until HUD is loaded?