У меня есть ошибка в моем скрипте godot gdscript, не могли бы вы, пожалуйста, решить ее

#godot

Вопрос:

 onready var healthBar : TextureProgress = get_node("HealthBar")

func update_health_bar (curHp, maxHp):
  
    healthBar.max_value = maxHp
    healthBar.value = curHp
 

Ошибка: Неверно задан индекс «max_value» (на основе: «Nil») со значением типа «int».

Ответ №1:

ваша панель здоровья была пустой, когда вы звонили update_health_bar .

Это может быть связано с тем, что у вас нет дочернего узла под названием «Панель работоспособности» или это не TextureProgress узел.

Можете ли вы отправить скриншот своего дерева сцен ?

Это должно выглядеть так: введите описание изображения здесь

Ответ №2:

Когда я сталкиваюсь с такой ошибкой, обычно это происходит из-за того, что я динамически создаю экземпляр сцены с помощью сценариев, и чтобы обойти null ошибку, я создаю функцию инициализации для назначения узла.

Поэтому в вашем случае, после создания экземпляра вашей сцены и добавления ее в дерево сцен, вызовите инициализацию на вашей сцене, где функция инициализации выглядит следующим образом:

 func init():
    healthBar=get_node("HealthBar")
 

Может быть, это сработает.