Как добавить несколько экземпляров 3D-сцены в Godot 3?

Я использую Godot 3.0.6. Я могу создать сцену нажатием клавиши, но только один раз. Вот мой код в GDScript:

extends KinematicBody

var cube = load("res://Scenes/Cube.tscn").instance()
var ball
var velocity

func _ready():
    ball = get_node(".")

func _process(delta):
    pass

func _physics_process(delta):
    if Input.is_action_pressed("ui_up"):
        get_tree().get_root().add_child(cube)

Если я пытаюсь добавить более одного куба в сцену, я получаю сообщение об ошибке:

Невозможно добавить дочерний "Cube" в "root", у него уже есть родительский "root".

Что я делаю неправильно?

1 ответ

Решение

Вы пытаетесь добавить то же самое cube экземпляр к дереву сцены неоднократно. Просто загрузите сцену и не создавайте экземпляр немедленно. Создайте новые экземпляры при нажатии клавиши и добавьте их в дерево сцены.

var cube = preload("res://Scenes/Cube.tscn")

func _physics_process(delta):
    if Input.is_action_pressed("ui_up"):
        # Create a new instance here.
        get_tree().get_root().add_child(cube.instance())
Другие вопросы по тегам