godotengine / godot-vscode-plugin

Godot development tools for VSCode
MIT License
1.47k stars 148 forks source link

ScenePreview does not work for CharacterBody3D #600

Closed DavidAriOstenfeldt closed 4 months ago

DavidAriOstenfeldt commented 4 months ago

Godot version

4.2.1.stable and 4.3.dev3

VS Code version

1.86.2

Godot Tools VS Code extension version

2.0.0

System information

Windows 10

Issue description

When using the new ScenePreview in vscode, CharacterBody3D and any child of it are not detected.

CharacterBody3D as root in Godot: billede

CharacterBody3D as root in VS code: billede

CharacterBody3D as child of root in Godot: billede

CharacterBody3D as child of root in VS Code: billede

It shows up when instanciated in another scene as a PackedScene: billede

I have tried with various other nodes, and it only seems to appear with CharacterBody3D.

This is my first time opening an issue, sorry for any errors I might have made

Steps to reproduce

  1. Create a CharacterBody3D anywhere in a scene in Godot
  2. Save the scene
  3. Open the scene with the CharacterBody3D in the scene preview in VS Code
DaelonSuzuka commented 4 months ago

That's super weird, thanks for the report!

I can't actually replicate this:

image

If you don't mind, can you upload a scene file that causes this behavior?

DavidAriOstenfeldt commented 4 months ago

I just tried creating a new scene with a CharacterBody3D, and it managed to detect it, even though my previous tests did not work, so I am unsure what was happening.

However, it still does not detect the two examples from my initial post, so I have attached them here.

faulty_scenes.zip

I switched to godot 4.3-dev3 after creating the project, but switched back to 4.2.1 after encountering this issue, thinking it might have something to do with that, but it happens on both versions.

DaelonSuzuka commented 4 months ago

Thanks, that's exactly what I needed.

This is the "header" block for the root node in one of your scenes:

[node name="TargetDummy" type="CharacterBody3D" node_paths=PackedStringArray("animation_player", "visuals")]

The node_paths property is a recent addition that my scene file parser isn't handling properly.

I'll have a fix for this soon.

DaelonSuzuka commented 4 months ago

It's working on my end using the scenes you sent me. Thanks again for those!

image

DavidAriOstenfeldt commented 4 months ago

That's great news, thank you! And thank you for your work on this awesome extension!