# 11-gabriel/3dgd-ca1 architecture

> Architecture diagram of the GitHub repository 11-gabriel/3dgd-ca1, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/11-gabriel/3dgd-ca1
- Repository: https://github.com/11-gabriel/3dgd-ca1

## Overview

This Unity project is a 3D puzzle game. Its scene and asset names suggest a menu-to-level-to-ending experience involving movement, keys, doors, and time tracking. The README only identifies it as a puzzle game, and no source excerpts were provided, so runtime wiring and scene transitions cannot be verified; the graph shows the documented product structure without inferring connections.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_scenes["Game scenes"]
  node_main_menu["Main menu"]
  node_level_1["Level 1<br/>[Level 1.unity]"]
  node_level_2["Level 2<br/>[Level 2.unity]"]
  node_level_3["Level 3<br/>[Level 3.unity]"]
  node_game_win["Game win<br/>[GameWin.unity]"]
  node_game_over["Game over"]
  node_credits["Credits"]
end

subgraph group_gameplay["Gameplay scripts"]
  node_buttons["Menu buttons<br/>[ButtonsScript.cs]"]
  node_movement["Player movement<br/>[PlayerMovement.cs]"]
  node_game_manager["Game manager<br/>[GameManager.cs]"]
  node_key_script["Key handling<br/>[KeyScript.cs]"]
  node_door["Door logic<br/>[Door.cs]"]
  node_unlock_door["Door unlocking<br/>[UnlockDoor.cs]"]
  node_level3_unlock["Level 3 door"]
  node_timer["Time tracking<br/>[TimeTracker.cs]"]
  node_pause["Pause control<br/>[PauseGame.cs]"]
  node_camera_switch["Camera switching<br/>[CamSwitcher.cs]"]
end

subgraph group_prefabs["Gameplay prefabs"]
  node_player_prefab["Player prefab<br/>[Player.prefab]"]
  node_key_prefab["Keys prefab<br/>[Keys.prefab]"]
  node_door_prefab["Door prefab<br/>[Door.prefab]"]
  node_trigger_prefab["Door trigger<br/>[DoorTrigger.prefab]"]
  node_trigger_zone["Trigger zone<br/>[TriggerZone.prefab]"]
  node_manager_prefab["Manager prefab"]
  node_timer_prefab["Timer prefab<br/>[TimeTracker.prefab]"]
  node_canvas_prefab["Canvas prefab<br/>[Canvas.prefab]"]
end

click node_main_menu "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/MainMenuScene.unity"
click node_level_1 "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Level%201.unity"
click node_level_2 "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Level%202.unity"
click node_level_3 "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Level%203.unity"
click node_game_win "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/GameWin.unity"
click node_game_over "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/GameOverScene.unity"
click node_credits "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Credits%20Scene.unity"
click node_buttons "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/ButtonsScript.cs"
click node_movement "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/PlayerMovement.cs"
click node_game_manager "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/GameManager.cs"
click node_key_script "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/KeyScript.cs"
click node_door "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/Door.cs"
click node_unlock_door "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/UnlockDoor.cs"
click node_level3_unlock "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/Level3UnlockDoor.cs"
click node_timer "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/TimeTracker.cs"
click node_pause "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/PauseGame.cs"
click node_camera_switch "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/CamSwitcher.cs"
click node_player_prefab "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Player.prefab"
click node_key_prefab "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Keys.prefab"
click node_door_prefab "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Door.prefab"
click node_trigger_prefab "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/DoorTrigger.prefab"
click node_trigger_zone "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/TriggerZone.prefab"
click node_manager_prefab "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Game%20Manager.prefab"
click node_timer_prefab "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/TimeTracker.prefab"
click node_canvas_prefab "https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Canvas.prefab"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main_menu,node_level_1,node_level_2,node_level_3,node_game_win,node_game_over,node_credits toneBlue
class node_buttons,node_movement,node_game_manager,node_key_script,node_door,node_unlock_door,node_level3_unlock,node_timer,node_pause,node_camera_switch toneAmber
class node_player_prefab,node_key_prefab,node_door_prefab,node_trigger_prefab,node_trigger_zone,node_manager_prefab,node_timer_prefab,node_canvas_prefab toneMint
```

## Components

### Game scenes

- [Main menu](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/MainMenuScene.unity): `3DGD CA1/Assets/Scenes/MainMenuScene.unity`
- [Level 1](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Level%201.unity): `3DGD CA1/Assets/Scenes/Level 1.unity`
- [Level 2](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Level%202.unity): `3DGD CA1/Assets/Scenes/Level 2.unity`
- [Level 3](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Level%203.unity): `3DGD CA1/Assets/Scenes/Level 3.unity`
- [Game win](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/GameWin.unity): `3DGD CA1/Assets/Scenes/GameWin.unity`
- [Game over](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/GameOverScene.unity): `3DGD CA1/Assets/Scenes/GameOverScene.unity`
- [Credits](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scenes/Credits%20Scene.unity): `3DGD CA1/Assets/Scenes/Credits Scene.unity`

### Gameplay scripts

- [Menu buttons](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/ButtonsScript.cs): `3DGD CA1/Assets/Scripts/ButtonsScript.cs`
- [Player movement](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/PlayerMovement.cs): `3DGD CA1/Assets/Scripts/PlayerMovement.cs`
- [Game manager](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/GameManager.cs): `3DGD CA1/Assets/Scripts/GameManager.cs`
- [Key handling](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/KeyScript.cs): `3DGD CA1/Assets/Scripts/KeyScript.cs`
- [Door logic](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/Door.cs): `3DGD CA1/Assets/Scripts/Door.cs`
- [Door unlocking](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/UnlockDoor.cs): `3DGD CA1/Assets/Scripts/UnlockDoor.cs`
- [Level 3 door](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/Level3UnlockDoor.cs): `3DGD CA1/Assets/Scripts/Level3UnlockDoor.cs`
- [Time tracking](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/TimeTracker.cs): `3DGD CA1/Assets/Scripts/TimeTracker.cs`
- [Pause control](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/PauseGame.cs): `3DGD CA1/Assets/Scripts/PauseGame.cs`
- [Camera switching](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Scripts/CamSwitcher.cs): `3DGD CA1/Assets/Scripts/CamSwitcher.cs`

### Gameplay prefabs

- [Player prefab](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Player.prefab): `3DGD CA1/Assets/Prefabs/Player.prefab`
- [Keys prefab](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Keys.prefab): `3DGD CA1/Assets/Prefabs/Keys.prefab`
- [Door prefab](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Door.prefab): `3DGD CA1/Assets/Prefabs/Door.prefab`
- [Door trigger](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/DoorTrigger.prefab): `3DGD CA1/Assets/Prefabs/DoorTrigger.prefab`
- [Trigger zone](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/TriggerZone.prefab): `3DGD CA1/Assets/Prefabs/TriggerZone.prefab`
- [Manager prefab](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Game%20Manager.prefab): `3DGD CA1/Assets/Prefabs/Game Manager.prefab`
- [Timer prefab](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/TimeTracker.prefab): `3DGD CA1/Assets/Prefabs/TimeTracker.prefab`
- [Canvas prefab](https://github.com/11-gabriel/3dgd-ca1/blob/main/3DGD%20CA1/Assets/Prefabs/Canvas.prefab): `3DGD CA1/Assets/Prefabs/Canvas.prefab`
