Skip to content

Editor

Purpose

The Editor/ territory contains the entire Snap Studio Pro editor application.

Snap Studio Pro is an Editor-only Unity tool focused on: - prefab-to-2D workflows - sprite generation - animation export - thumbnail generation - preview rendering - editor production tooling

This folder contains the core editor architecture, workflow systems, UI layers, rendering systems, preview systems, pipeline integrations, and supporting infrastructure that power the Snap Studio Pro editor experience.


๐Ÿงฑ High-Level Architecture

Snap Studio Pro is intentionally organized into clear architectural territories with explicit ownership boundaries.

Territory Responsibility
Window/ Editor application shell, lifecycle, layout, navigation
Panels/ User-facing editor UI and workflow interaction
Features/ Workflow/domain behaviour
Preview/ Live preview coordination and preview-scene ownership
Rendering/ Low-level rendering and capture implementation
Infrastructure/ Shared support systems (prefs, runners, file IO, state)
UI/ Shared IMGUI infrastructure, themes, style systems
Pipelines/ Built-in / URP / HDRP isolated implementations
Thumbnails/ Thumbnail generation and caching infrastructure
Session/ Lightweight session restore workflows
Startup/ Editor startup, compatibility, and initialization workflows
Diagnostics/ Logging, debugging, and support tooling
Presets/ Preset persistence and serialization helpers
PrefabMetadata/ Lightweight prefab categorization and filtering
Attributes/ Shared editor-safe attributes and drawers
Enums/ Shared lightweight workflow enums
Core/ Foundational primitives and reusable low-level systems
Abstractions/ Focused integration seams and workflow contracts

Each territory contains its own README.md describing: - ownership - dependency direction - architectural intent - non-goals - future boundaries


๐Ÿง  Architectural Philosophy

Snap Studio Pro is intentionally built around: - explicit composition - modular editor workflows - practical separation of concerns - render-pipeline isolation - maintainable orchestration

The architecture focuses on: - ownership clarity - reusable workflows - editor stability - long-term maintainability

โ€”not abstraction theatre or framework complexity for its own sake.


๐ŸŽ› Workflow Model

The editor architecture broadly flows like this:

Window
  โ†“
Panels
  โ†“
Features / Preview
  โ†“
Rendering / Infrastructure / Pipelines

Window

Owns: - editor shell - lifecycle - layout - composition - repaint coordination

Panels

Own: - user interaction - request construction - workflow-facing editor UI

Features

Own: - export workflows - animation workflows - lighting workflows - capture behaviour - domain logic

Preview

Owns: - live preview scenes - prefab preview lifecycle - preview coordination

Rendering

Owns: - actual rendering - image generation - compositing - texture processing - low-level capture logic

Infrastructure

Owns: - prefs - runners - file IO - support systems - async editor workflows


๐Ÿงฉ Orchestration Philosophy

Some systems inside Snap Studio Pro are intentionally orchestration-heavy.

Examples include: - PrefabPreviewWindow - RightPanel - MiddlePreviewPanel - PrefabPreviewManager

These systems exist to coordinate: - editor workflows - layout - repaint flow - panel composition - preview state - multi-system interaction

This is intentional.

The architecture separates: - orchestration layers from - implementation layers

rather than forcing every class to be artificially small.


๐ŸŽจ Render Pipeline Support

Snap Studio Pro supports: - Built-in Render Pipeline - Universal Render Pipeline (URP) - High Definition Render Pipeline (HDRP)

Pipeline-specific implementations are intentionally isolated under: - Pipelines/BuiltIn - Pipelines/URP - Pipelines/HDRP

This keeps: - rendering behaviour - volume systems - lighting systems - camera systems

cleanly separated per pipeline.

Stub-safe fallbacks are also used where required to allow clean compilation even when specific Unity pipeline packages are missing.


๐Ÿ–ผ Preview & Rendering Separation

Preview and Rendering are intentionally separate territories.

Preview owns:

  • preview scene lifecycle
  • prefab instance management
  • interaction state
  • preview coordination

Rendering owns:

  • actual rendering
  • image generation
  • compositing
  • texture processing
  • low-level capture logic

This separation improves: - maintainability - workflow clarity - pipeline isolation - export safety


๐Ÿงช WIP / Labs Philosophy

Experimental systems are intentionally isolated under: - Panels/WIP - Features/WIP - Labs Mode

WIP systems are allowed to evolve quickly without affecting stable production workflows.

They should not become hidden dependencies for the main editor architecture until stabilized.


๐Ÿ“š Documentation Philosophy

Snap Studio Pro uses: - XML documentation - folder-level READMEs - territory documentation - workflow-focused user guides

to document: - ownership - architectural intent - dependency direction - workflow responsibilities

The goal is: - future maintainability - onboarding clarity - readable architecture - predictable extension

โ€”not documentation for its own sake.


๐Ÿ’ฌ Final Notes

Snap Studio Pro evolved organically over time into a large-scale Unity Editor tool with: - modular workflow systems - isolated render-pipeline support - reusable editor infrastructure - scalable editor architecture

The architecture intentionally balances: - practical Unity editor development with - maintainable long-term structure

while remaining focused on real-world production workflows rather than framework complexity.