При использовании инстансированной сцены используемый в ней источник света не работает - PullRequest
0 голосов
/ 01 августа 2020

У меня есть сцена с астероидом и сцена pl anet. Когда я запускаю сцену астероида отдельно, дочерние источники света работают, а когда я генерирую их в сцене pl anet, свечение исчезает. Более того, я проверил, находится ли этот источник на астероиде, когда он уже создан как переменная, но еще не добавлен в сцену. В данный момент дочерний источник света астероида отсутствует. В конце концов астероид меняет освещение (на отсутствие освещения, lol), но c этого не должно быть

Вот дизайн сцен

Вот готовые и обрабатывающие функции:

func _ready():
#THERE ARE ONLY MOVEMENT AND COLOR SETTINGS
random_color()
scale = Vector2(0.2, 0.2)
var go = true
rand_generate.randomize()
var delta_speed = rand_generate.randf_range(-0.5, 0.5)
angle_speed = 3 + delta_speed
angle_speed *= speed_scale
life_time = 2 * PI / angle_speed
rand_generate.randomize()
radius = rand_generate.randf_range(min_rad, max_rad)
position = Vector2(0, radius) + rotate_point
radius = Vector2(0, -radius)

func _physics_process(delta):
if PLAY:
    #FUNCTION ONLY FOR DEBUG
    position = get_global_mouse_position()
if not go:
    #CONTROLS SHOULD IT MOVE
    return

#THIS THREE IF'S ARE USED THAT THE ASTEROID
#FIRST SWIM OUT SMOOTHLY, THEN MOVE UNIFORMALLY
#THEN GENTLY REMOVE
if time < life_time * 0.3:
    time += delta
    var count_scale = lerp(0.01, 3, time / life_time)
    scale = Vector2(count_scale,count_scale)
elif time > life_time * 0.7:
    time += delta
    var count_scale = lerp(3, 0.01,time / life_time)
    scale = Vector2(count_scale,count_scale)
else:
    time += delta

if time > life_time:
    queue_free()

#DATS A CIRCULAR MOVEMENT AROUND A PLANET
position = rotate_point + radius.rotated(angle_speed*time + PI)

1 Ответ

1 голос
/ 02 августа 2020

Я решил свою проблему. В настройках Light2D я установил для свойств Layer Min и Layer Max значение -1 и 1 соответственно. Теперь все работает

...