How qusbell/forstudy works
Scope and purpose
The active target is the Unity SkillTree project, per Readme.txt. It is a standalone interactive skill-tree visualization/editor: ScriptableObject-style skill definitions are loaded as assets, instantiated as UI nodes, connected visually, navigated by camera controls, and persisted through save data. The repository also contains unrelated C++ networking and Direct3D12 coursework; they are outside the stated target.
Runtime entry and scene composition
Unity opens the configured scene, principally SkillTree/Assets/Scenes/SampleScene.unity, which composes manager/controller components and UI prefabs. Runtime behavior is driven by Unity MonoBehaviours rather than a conventional main method. Rendering uses Unity’s Universal Render Pipeline 2D settings under SkillTree/Assets/Settings/Renderer2D.asset and SkillTree/Assets/Settings/UniversalRP.asset.
Skill-definition data boundary
Skill content is authored as assets rather than hardcoded runtime objects. SkillTree/Assets/Scripts/SkillNodeData.cs defines the node data model, while individual node definitions reside under SkillTree/Assets/Resources/SkillNodes/ (for example Damage 1.asset and Life 3.asset). SkillTree/Assets/Scripts/StatModifier.cs represents stat effects associated with nodes. The Resources directory is the content-loading boundary between authored data and runtime tree construction.
Tree orchestration
SkillTree/Assets/Scripts/SkillTreeManager.cs is the central coordinator: it should own loading node definitions, instantiating node/line prefabs, tracking selection/unlock state, and applying state restoration. It bridges static resource data to scene UI. Relevant reusable scene assets are SkillTree/Assets/Prefabs/SkillNode_Base.prefab and SkillTree/Assets/Prefabs/SkillLine.prefab.
Node interaction and connection graph
SkillTree/Assets/Scripts/SkillNodeUI.cs represents a rendered, interactive node and binds visual/UI state to SkillNodeData. SkillTree/Assets/Scripts/SkillTreeConnector.cs defines or manages node-to-node relationship behavior. Together they form the logical graph boundary: nodes carry state and modifiers; connectors establish allowable or rendered adjacency.
Visual graph rendering
Connections are rendered separately from graph logic through SkillTree/Assets/Scripts/SkillTreeLineRenderer.cs, using the line prefab SkillTree/Assets/Prefabs/SkillLine.prefab. This separation allows connector topology to drive visual edges without embedding rendering implementation in node data. SkillTree/Assets/Scripts/ViewportOutline.cs provides viewport-oriented visual framing or bounds feedback.
Navigation, input, and persistence
SkillTree/Assets/Scripts/SkillTreeCameraController.cs handles viewport movement/zoom around the tree, insulated from node selection logic. Input is defined by SkillTree/Assets/InputSystem_Actions.inputactions, indicating Unity’s Input System is a material runtime dependency. SkillTree/Assets/Scripts/SkillTreeSaveData.cs is the persistence boundary for serializing/restoring user progress or selected/unlocked node state; no external backend or network service is evidenced.
Infrastructure and non-target projects
The target runs on Unity with C#, URP 2D, and local Unity asset serialization. No cloud, database, or external API integration is visible. Separate Visual Studio C++ solutions—network client/server under 24311013_변건호_Network1차/ and a DirectX 12 renderer under 과제_D3D12/—are independent projects and should not be coupled to SkillTree planning.
Main entry points: SkillTreeManager.cs Skill Tree Manager · SampleScene.unity Sample Scene · SkillNodeUI.cs Skill Node UI · SkillTreeConnector.cs Skill Tree Connector
Components 15
Authored Content
Unity assets that define the skill tree.
- Skill Node Data · Defines skill-node content and state inputs.
SkillTree/Assets/Scripts/SkillNodeData.cs - Skill Node Assets · Authored node definitions loaded at runtime.
- Stat Modifier · Represents effects supplied by skill nodes.
SkillTree/Assets/Scripts/StatModifier.cs
Tree Runtime
Scene components that construct and manage the interactive tree.
- Sample Scene · Runtime composition root for managers and prefabs.
SkillTree/Assets/Scenes/SampleScene.unity - Skill Tree Manager · Loads content, builds the tree, and owns unlock and restore state.
SkillTree/Assets/Scripts/SkillTreeManager.cs - Skill Tree Connector · Establishes node adjacency and connection behavior.
SkillTree/Assets/Scripts/SkillTreeConnector.cs - Skill Tree Save Data · Serializes and restores player skill progress.
SkillTree/Assets/Scripts/SkillTreeSaveData.cs
UI and Rendering
Interactive node, edge, camera, and rendering components.
- Skill Node Prefab
SkillTree/Assets/Prefabs/SkillNode_Base.prefab - Skill Node UI · Binds node data and interaction to rendered node state.
SkillTree/Assets/Scripts/SkillNodeUI.cs - Skill Tree Line Renderer · Renders visual edges from connector topology.
SkillTree/Assets/Scripts/SkillTreeLineRenderer.cs - Skill Line Prefab
SkillTree/Assets/Prefabs/SkillLine.prefab - Camera Controller · Pans and zooms the tree viewport.
SkillTree/Assets/Scripts/SkillTreeCameraController.cs - Input Actions
SkillTree/Assets/InputSystem_Actions.inputactions - Viewport Outline · Provides viewport bounds or framing feedback.
SkillTree/Assets/Scripts/ViewportOutline.cs - URP 2D Renderer
SkillTree/Assets/Settings/Renderer2D.asset
Connections 18
- Sample Scene → Skill Tree Manager: hosts
- Sample Scene → Camera Controller: hosts
- Sample Scene → Viewport Outline: hosts
- Sample Scene → URP 2D Renderer: renders with
- Skill Tree Manager → Skill Node Assets: loads
- Skill Node Assets → Skill Node Data: contains
- Skill Node Data → Stat Modifier: defines effects
- Skill Tree Manager → Skill Node Prefab: instantiates
- Skill Node Prefab → Skill Node UI: contains
- Skill Node UI → Skill Node Data: binds
- Skill Tree Manager → Skill Tree Connector: builds topology
- Skill Tree Connector → Skill Node UI: connects
- Skill Tree Connector → Skill Tree Line Renderer: drives edges
- Skill Tree Manager → Skill Line Prefab: instantiates
- Skill Tree Line Renderer → Skill Line Prefab: renders with
- Input Actions → Camera Controller: controls
- Skill Tree Manager → Skill Tree Save Data: restores and saves
- Skill Tree Save Data → Skill Node UI: restores state