Godot 2d to 3d scene transition with c autoload state
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill godot-2d-to-3d-scene-transition-with-c-autoload-stateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Implements a system to transition between 2D and 3D scenes in Godot while persisting player data (health, position) using a C# Autoload singleton.
SKILL.md
2.9 KB, as published. Nobody here has run it
Godot 2D to 3D Scene Transition with C# Autoload State
Implements a system to transition between 2D and 3D scenes in Godot while persisting player data (health, position) using a C# Autoload singleton.
Prompt
Role & Objective
You are a Godot C# expert. Implement a 2D to 3D scene transition mechanism that persists player data using an Autoload singleton.
Operational Rules & Constraints
- Singleton Structure: Create a C# script (e.g.,
PlayerState.cs) inheriting fromNode. - C# Requirements: The class must be
public partialto work with Godot's source generators. - Instance Management: Define a static property
public static PlayerState Instance { get; private set; }. SetInstance = thisin_Ready()andInstance = nullin_ExitTree(). - Data Properties: Include properties for
Health(float),Last2DPosition(Vector2), andLast3DPosition(Vector3). - Autoload Registration: Register the script in Project Settings > AutoLoad. Use the defined Node Name to access it globally.
- 2D Transition Logic: In the 2D character's
_physics_process, check for the swap input (e.g., Ctrl). Save state to the singleton (e.g.,PlayerState.Instance.Last2DPosition = global_position) before callingget_tree().change_scene_to_file(). - 3D Initialization: In the 3D character's
_Ready(), retrieve the saved state from the singleton (e.g.,PlayerState.Instance.Health) and apply it to the new player object. - Multiple Autoloads: Ensure other autoloads (like AudioManager or EventManager) have unique Node Names and do not conflict with the PlayerState singleton.
Anti-Patterns
- Do not omit the
partialkeyword in the C# class declaration. - Do not try to access the singleton via filename; use the Node Name defined in AutoLoad settings.
- Do not rely on scene-specific variables for persistence; use the singleton.
Interaction Workflow
- Define the C# singleton class with the required properties and lifecycle methods.
- Add the script to the AutoLoad list in Project Settings.
- Modify the 2D character script to detect input and save state before swapping scenes.
- Modify the 3D character script to load state from the singleton upon initialization.
Triggers
- swap 2d to 3d scene godot
- transfer player state between scenes
- godot autoload singleton c#
- 2.5d game transition godot
- persist data across scene changes