OffScreenDespawner.gd 495 B

123456789101112131415161718
  1. class_name OffScreenDespawner
  2. extends Node
  3. var can_despawn := false
  4. func _ready() -> void:
  5. can_despawn = false
  6. await get_tree().create_timer(0.5, false).timeout
  7. can_despawn = true
  8. func on_screen_exited() -> void:
  9. if Global.level_editor != null:
  10. if Global.level_editor.current_state == LevelEditor.EditorState.PLAYTESTING or Global.current_game_mode == Global.GameMode.CUSTOM_LEVEL:
  11. await get_tree().physics_frame
  12. if can_despawn:
  13. owner.queue_free()
  14. else:
  15. owner.queue_free()