Godot Version
v4.4.1.stable.flathub [49a5bc7b6]
Question
Hi, I’ve started to make a scene manager as it’s very usefull for the project I’m making, but I noticed that some Label3D just disappear when using it…
I looked up everywhere but can’t undertstand why it’s doing it.
Does anyone know such an issue ?
Can you show your Scene tree for the 3D level selector? And the scene manager script? I’m guessing maybe a Node is breaking the Node3D family tree, each Node3D inherits it’s position/scale from it’s parent, but if the parent isn’t a Node3D it won’t inherit anything.
Sure, here’s the lobby code:
extends Node3D
@onready var camera: Node3D = $"Camera"
@onready var light: OmniLight3D = $OmniLight3D
var levelsList: Array[int] = [0, 1, 2, 3]
var currentLevel: int = 0
var decalage: int = 3
var lerpWieght: float = 0.25
func _ready() -> void:
for l in get_tree().get_nodes_in_group("LevelLabels"):
if(l.name == "LLabel" + str(currentLevel)):
l.set_font_size(32)
else:
l.set_font_size(0)
func _physics_process(delta: float) -> void:
camera.global_position = Vector3(lerpf(camera.global_position.x, currentLevel*decalage, lerpWieght), 2, 4)
light.global_position = Vector3(lerpf(light.global_position.x, currentLevel*decalage, lerpWieght), 2.65, 1.785)
for l in get_tree().get_nodes_in_group("LevelLabels"):
if(l.name == "LLabel" + str(currentLevel)):
l.set_font_size(lerpf(l.get_font_size(), 32, 0.3))
else:
l.set_font_size(lerpf(l.get_font_size(), 0, 0.3))
if Input.is_action_just_pressed("ui_left"):
currentLevel = clamp(currentLevel-1, 0, levelsList.size()-1)
elif Input.is_action_just_pressed("ui_right") :
currentLevel = clamp(currentLevel+1, 0, levelsList.size()-1)
elif Input.is_action_just_pressed("ui_accept"):
if currentLevel == 0:
VAR.sceneManager.changeScene("res://scene/levels/level" + str(currentLevel) + ".tscn", "level")
And here is the lobby tree: