feat: persistent character system (closes #7) #31
No reviewers
Labels
No labels
architecture
bug
duplicate
enhancement
help wanted
invalid
performance
quality
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lavarius/ProjectOverlay!31
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/persistent-character-system"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements the persistent character architecture from the plan. The character is now spawned once in Loading Screen and survives all scene transitions via
DontDestroyOnLoad. Each game scene has aCharacterSpawnPointmarker that teleports the character on arrival and sets the correct zone.Changes
New Scripts
CharacterSpawnPoint.cs— Empty GameObject marker withDefaultZonefield. Gizmo renders a green sphere + forward arrow in the editor.CharacterSceneInitializer.cs— Placed onUtilityin each game scene. OnStart(): disables CharacterController, teleports to spawn point, re-enables CC, callsSetZoneon AnimationController + MovementManager, and callsDisableRagDollAll()to reset any lingering ragdoll state.LoadingScreenController.cs— Placed onUtilityin Loading Screen. Waits one frame forAwake()calls to complete, then forwards toSceneLoader.TargetSceneviaScreenAnimationTransistor.Modified Scripts
CharacterStore.cs— AddedDontDestroyOnLoad(gameObject)inAwake()(closes #7)SceneLoader.cs— Now storesTargetSceneas astaticproperty and always routes throughLoading Screenfirst instead of loading game scenes directlyScreenAnimationTransistor.cs— AddedTriggerSceneChange(string sceneName)overload withInvoke-based scene load after the close animationScene Changes
Characterprefab instance +LoadingScreenControlleron UtilityCharacterSpawnPointat character's original position (zone: Outside) +CharacterSceneInitializeron UtilityCharacterSpawnPointat origin rot:180 (zone: Booth) +CharacterSceneInitializeron Utility —Character BoothModeinstance kept, needs decision on whether booth shares the persistent character or keeps its own variantCharacterSpawnPointnear room entrance (zone: Inside) +CharacterSceneInitializeron Utility — no character existed here before⚠️ Action Required
BoothMode uses a separate
Character BoothModeprefab that may have booth-specific configuration. Decide whether to:Characterprefab and removeCharacter BoothModefrom the scene, orCharacter BoothModeas the persistent character (spawn it in Loading Screen instead ofCharacter.prefab)Testing Checklist