Как создать копию объекта, а потом удалить только копию - GDScript

Я создаю копию таким кодом:

export var wave = {"count": 10, "interval": 0.5}

func _ready():
    var posarr = []
    var objectarray = []
    var node = $Path2D/PathFollow2D/EnemyLvl1
    
    var vector = Vector2(100, 100)
    
    for x in range(0, wave.count):
        posarr += [vector]
        yield(get_tree().create_timer(wave.interval), "timeout")

        if objectarray.size() <= x:
            var obj = node
            obj.position = posarr[x]
            $Path2D/PathFollow2D.add_child(obj)
            print("Main> Spawned")
            objectarray.append(obj)
        elif objectarray[x] == null:
            var obj = node
            obj.position = posarr[x]
            $Path2D/PathFollow2D.add_child(obj)
            print("Main> Spawned")
            objectarray[x] = obj

Этот код должен создать 10 копий с интервалом в 0.5 секунд

Ничего не работает, а также когда я удаляю объект, то удаляются все копии

Как этого избежать? Вот код на удаление объекта:

onready var path_follow = get_parent()

export var speed = 1000

func _physics_process(delta):
    move(delta)

func move(delta):
    path_follow.set_offset(path_follow.get_offset() + speed * delta)
    if path_follow.get_offset() >= 3700:
        queue_free()
        print("Main>EnemyLvl1> Despawned")

где parent это PathFollow2D

Вывод

Main> Spawned
Main> Spawned
Main> Spawned
Main> Spawned
Main> Spawned
Main> Spawned
Main> Spawned
Main>EnemyLvl1> Despawned
Invalid set index 'position' (on base: 'null instance') with value of type 'Vector2'.

Строка в которой ошибка:

        if objectarray.size() <= x:
            ...
            obj.position = posarr[x]

Ещё ничего не появляется на экране, хотя и пишет Main> Spawned Как это исправить?


Ответы (1 шт):

Автор решения: xmurik

у тебя на все копии один скрипт. естественно, что они будут удалиться синхронно и все сразу. пытайся присвоить им каждому уникальный номер и добавить интервал между удалением копий с разными уникальными номерами.

→ Ссылка