# hieudo2808/fps architecture

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

- Interactive diagram: https://gitdiagram.com/hieudo2808/fps
- Repository: https://github.com/hieudo2808/fps

## Overview

The supplied tree is a Unity Cinemachine package, while the README describes an unrelated zombie-survival game; its gameplay features are not represented in the listed source. This graph therefore maps the package’s camera runtime and documented subsystem structure. Sampled code supports the camera-manager, input-axis, editor, and update-management details; other capabilities are included from the tree, with uncertain wiring omitted.

Main entry points: [`Packages/com.unity.cinemachine/Editor/Editors`](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Editor/Editors) (Camera inspectors), [`Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs`](https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs) (Cinemachine camera), [`Packages/com.unity.cinemachine/Runtime/Components`](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Components) (Camera components), [`Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineBrain.cs`](https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineBrain.cs) (Cinemachine Brain)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Camera authoring"]
  node_camera["Cinemachine camera"]
  node_camera_components["Camera components<br/>[Components]"]
  node_camera_managers["Camera managers<br/>[Behaviours]"]
end

subgraph group_runtime["Camera runtime"]
  node_brain["Cinemachine Brain"]
  node_update_manager["Camera update manager"]
  node_camera_core["Camera core<br/>[Core]"]
  node_blend_manager["Blend manager<br/>[BlendManager.cs]"]
end

subgraph group_extensions["Runtime extensions"]
  node_input_controller["Input axis controller"]
  node_impulse["Impulse system<br/>[Impulse]"]
  node_postprocessing["Post-processing<br/>[PostProcessing]"]
  node_timeline["Timeline integration<br/>[Timeline]"]
end

subgraph group_editor["Editor tooling"]
  node_editor_inspectors["Camera inspectors<br/>[Editors]"]
  node_editor_timeline["Timeline editors<br/>[Timeline]"]
  node_upgrader["Legacy upgrader<br/>[Upgrader]"]
end

node_developer(("Unity developer"))

node_developer -->|"configures"| node_editor_inspectors
node_editor_inspectors -->|"edits settings"| node_camera
node_editor_inspectors -->|"edits components"| node_camera_components
node_editor_inspectors -->|"configures input"| node_input_controller
node_editor_timeline -->|"edits clips"| node_timeline
node_upgrader -->|"converts legacy"| node_camera
node_camera -->|"hosts components"| node_camera_components
node_camera_managers -->|"selects and blends"| node_blend_manager
node_update_manager -->|"updates cameras"| node_camera_core
node_input_controller -->|"drives axes"| node_camera_components
node_impulse -.->|"provides effects"| node_camera_components
node_postprocessing -.->|"extends output"| node_brain
node_timeline -->|"controls shots"| node_camera
node_brain -->|"uses camera state"| node_camera_core

click node_camera "https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs"
click node_camera_components "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Components"
click node_camera_managers "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Behaviours"
click node_brain "https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineBrain.cs"
click node_update_manager "https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Core/CameraUpdateManager.cs"
click node_camera_core "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Core"
click node_blend_manager "https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Core/BlendManager.cs"
click node_input_controller "https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Helpers/CinemachineInputAxisController.cs"
click node_impulse "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Impulse"
click node_postprocessing "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/PostProcessing"
click node_timeline "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Timeline"
click node_editor_inspectors "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Editor/Editors"
click node_editor_timeline "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Editor/Timeline"
click node_upgrader "https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Editor/Upgrader"

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_camera,node_camera_components,node_camera_managers toneBlue
class node_brain,node_update_manager,node_camera_core,node_blend_manager toneAmber
class node_input_controller,node_impulse,node_postprocessing,node_timeline toneMint
class node_editor_inspectors,node_editor_timeline,node_upgrader toneRose
class node_developer toneIndigo
```

## Components

### Camera authoring

- [Cinemachine camera](https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs): `Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs`
- [Camera components](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Components): `Packages/com.unity.cinemachine/Runtime/Components`
- [Camera managers](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Behaviours): `Packages/com.unity.cinemachine/Runtime/Behaviours`

### Camera runtime

- [Cinemachine Brain](https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineBrain.cs): `Packages/com.unity.cinemachine/Runtime/Behaviours/CinemachineBrain.cs`
- [Camera update manager](https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Core/CameraUpdateManager.cs): `Packages/com.unity.cinemachine/Runtime/Core/CameraUpdateManager.cs`
- [Camera core](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Core): `Packages/com.unity.cinemachine/Runtime/Core`
- [Blend manager](https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Core/BlendManager.cs): `Packages/com.unity.cinemachine/Runtime/Core/BlendManager.cs`

### Runtime extensions

- [Input axis controller](https://github.com/hieudo2808/fps/blob/main/Packages/com.unity.cinemachine/Runtime/Helpers/CinemachineInputAxisController.cs): `Packages/com.unity.cinemachine/Runtime/Helpers/CinemachineInputAxisController.cs`
- [Impulse system](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Impulse): `Packages/com.unity.cinemachine/Runtime/Impulse`
- [Post-processing](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/PostProcessing): `Packages/com.unity.cinemachine/Runtime/PostProcessing`
- [Timeline integration](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Runtime/Timeline): `Packages/com.unity.cinemachine/Runtime/Timeline`

### Editor tooling

- [Camera inspectors](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Editor/Editors): `Packages/com.unity.cinemachine/Editor/Editors`
- [Timeline editors](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Editor/Timeline): `Packages/com.unity.cinemachine/Editor/Timeline`
- [Legacy upgrader](https://github.com/hieudo2808/fps/tree/main/Packages/com.unity.cinemachine/Editor/Upgrader): `Packages/com.unity.cinemachine/Editor/Upgrader`

### Other components

- **Unity developer**

## Connections

- Unity developer → Camera inspectors: configures
- Camera inspectors → Cinemachine camera: edits settings
- Camera inspectors → Camera components: edits components
- Camera inspectors → Input axis controller: configures input
- Timeline editors → Timeline integration: edits clips
- Legacy upgrader → Cinemachine camera: converts legacy
- Cinemachine camera → Camera components: hosts components
- Camera managers → Blend manager: selects and blends
- Camera update manager → Camera core: updates cameras
- Input axis controller → Camera components: drives axes
- Impulse system → Camera components: provides effects
- Post-processing → Cinemachine Brain: extends output
- Timeline integration → Cinemachine camera: controls shots
- Cinemachine Brain → Camera core: uses camera state
