Skip to main content

Demo asset layout

Guide

Locate Demo assets by their owning card, unit, status, intent, deck, or encounter, and organize project presentation assets by the same rule

Root foldersโ€‹

๐Ÿ“ฆ Demo/Content/ # All shipped presentation assets, grouped by owner
โ”œโ”€โ”€ ๐ŸŽจ Art/ # Cross-object shared assets only
โ”œโ”€โ”€ ๐Ÿƒ Cards/ # Card-family frames, prefabs, and per-card artwork
โ”œโ”€โ”€ ๐Ÿ—‚๏ธ Decks/ # Starting/reward deck cover icons for each class
โ”œโ”€โ”€ ๐ŸŒ„ Encounters/ # Class backgrounds, parallax layers, and encounter UI
โ”œโ”€โ”€ ๐ŸŽฏ Intents/ # Enemy-intent icons and the widgets that display them
โ”œโ”€โ”€ โœจ Statuses/ # Status icons, status widgets, and status-owned VFX
โ””โ”€โ”€ ๐Ÿง™ Units/ # Player/enemy artwork, prefabs, and shared unit widgets

Cardsโ€‹

๐Ÿƒ Content/Cards/ # Five card families plus their one shared glow sprite
โ”œโ”€โ”€ โš”๏ธ Basic/ # Basic-family frame, prefab, and card artwork
โ”‚ โ”œโ”€โ”€ ๐Ÿ–ผ๏ธ Artwork/ # Art for Basic cards such as Strike and Defend
โ”‚ โ”œโ”€โ”€ ๐ŸŽจ Basic.png # Basic card-frame sprite
โ”‚ โ””โ”€โ”€ ๐Ÿงฉ Basic.prefab # Basic card-view prefab
โ”œโ”€โ”€ ๐Ÿ’ฅ Burst/ # Burst-family frame, prefab, and artwork
โ”œโ”€โ”€ ๐Ÿ•ฏ๏ธ Curse/ # Curse-family frame, prefab, and artwork
โ”œโ”€โ”€ ๐Ÿ› ๏ธ Skill/ # Skill-family frame, prefab, and artwork
โ”œโ”€โ”€ ๐Ÿค Support/ # Support-family frame, prefab, and artwork
โ””โ”€โ”€ โœจ CardGlow.png # Glow sprite shared by every card family

The five folders correspond to the five card template families. Each owns its frame sprite, card Prefab, and Artwork/, which stores the art for cards using that frame. The CardGlow.png shared by every template stays at the Cards/ root

tip

When a card later gains dedicated VFX, audio, or animation, place those assets under the card family that uses them and add a VFX/, Audio/, or Animation/ subfolder. Avoid asset-type roots such as Content/VFX/Cards/

Unitsโ€‹

๐Ÿง™ Content/Units/ # Unit-owned art/prefabs plus unit-wide shared assets
โ”œโ”€โ”€ ๐Ÿ‘น Enemy/ # Enemy folders grouped first by class, then by unit
โ”‚ โ”œโ”€โ”€ ๐Ÿน Enemy_Hunter/ # Hunter enemy roster
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ Enemy_PlagueStalker_Normal/ # Normal enemy artwork and prefab
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ„ Enemy_SporeBrute_Elite/ # Elite enemy artwork and prefab
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ’€ Enemy_MireReaper_Boss/ # Boss artwork and prefab
โ”‚ โ”‚ โ””โ”€โ”€ ๐ŸŒฑ Enemy_BogPolyp_Summon/ # Summoned-unit artwork and prefab
โ”‚ โ”œโ”€โ”€ ๐Ÿช„ Enemy_Mage/ # Mage enemies, each in its own tier-suffixed folder
โ”‚ โ”œโ”€โ”€ โœจ Enemy_Priest/ # Priest enemies, each in its own tier-suffixed folder
โ”‚ โ””โ”€โ”€ โš”๏ธ Enemy_Warrior/ # Warrior enemies, each in its own tier-suffixed folder
โ”œโ”€โ”€ ๐Ÿฆธ Player/ # Player-unit assets grouped by class
โ”‚ โ”œโ”€โ”€ ๐Ÿน Hunter/ # Avatar, full-body art, and player prefab
โ”‚ โ”œโ”€โ”€ ๐Ÿช„ Mage/ # Avatar, full-body art, and player prefab
โ”‚ โ”œโ”€โ”€ โœจ Priest/ # Avatar, full-body art, and player prefab
โ”‚ โ”œโ”€โ”€ โš”๏ธ Warrior/ # Avatar, full-body art, and player prefab
โ”‚ โ””โ”€โ”€ ๐ŸŒŸ Shine.png # Highlight sprite shared by player units
โ”œโ”€โ”€ ๐Ÿงฉ Prefabs/ # Unit-wide widgets such as HpWidget.prefab
โ””โ”€โ”€ ๐ŸŒ‘ Shadow.png # Ground shadow shared by every unit

Each enemy uses its own Enemy_<Name>_<Tier> folder under the owning class, with art and Prefab stored together. Player assets store the avatar, full-body art, and unit Prefab by class. Components shared by multiple units, such as HP bars, belong in Units/Prefabs/

Encountersโ€‹

๐ŸŒ„ Content/Encounters/ # Presentation assets owned by each encounter class
โ”œโ”€โ”€ ๐Ÿน Hunter/ # Hunter encounter presentation
โ”‚ โ”œโ”€โ”€ ๐Ÿ–ผ๏ธ Background.png # Full-screen class background
โ”‚ โ”œโ”€โ”€ ๐Ÿž๏ธ Layer/ # Foreground/background parallax layers
โ”‚ โ””โ”€โ”€ ๐Ÿงญ UI/ # Hunter-specific encounter UI art
โ”œโ”€โ”€ ๐Ÿช„ Mage/ # Mage background, parallax layers, and UI art
โ”œโ”€โ”€ โœจ Priest/ # Priest background, parallax layers, and UI art
โ””โ”€โ”€ โš”๏ธ Warrior/ # Warrior background, parallax layers, and UI art

Encounter backgrounds and their parallax layers belong to the class folder; the scene files themselves are not content; they live under Demo/Scenes/<Class>/

Statuses and intentsโ€‹

โœจ Content/Statuses/ # Status-owned icons, widgets, and presentation effects
โ”œโ”€โ”€ ๐Ÿงฉ Prefabs/ # StatusWidget.prefab and StatusIconEntry.prefab
โ”œโ”€โ”€ ๐Ÿ’ซ VFX/ # 25 status apply/expire effect prefabs
โ””โ”€โ”€ ๐Ÿ–ผ๏ธ Status_<Name>.png # 30 status icons selected in the Game Card Editor

๐ŸŽฏ Content/Intents/ # Assets used to telegraph enemy actions
โ”œโ”€โ”€ ๐Ÿงฉ Prefabs/ # IntentWidget.prefab and IntentEntry.prefab
โ””โ”€โ”€ ๐Ÿ–ผ๏ธ Intent_<Kind>.png # Eight icons: Attack through Unknown

Each status definition references its icon through the Icon field in Game Card Editor Status mode. Status-specific effects live in Statuses/VFX/, with apply and expiration presentation configured through Status Apply FX and Status Expire FX nodes in the status FlowGraph. Intent icons match the action types shown above enemies, while the two Prefabs/ folders store the status and Intent controls used by Demo UI

Put shared assets in Artโ€‹

Content/Art/ is reserved for assets used by multiple owning objects:

๐ŸŽจ Content/Art/ # Shared presentation infrastructure used across owners
โ”œโ”€โ”€ ๐Ÿ”Š Audio/ # Mixer, BGM, ambience, gameplay SFX, UI, stingers, and voices
โ”œโ”€โ”€ ๐Ÿ”ค Fonts/ # Runtime fonts and TextMesh Pro font assets
โ”œโ”€โ”€ ๐Ÿงช Materials/ # Shared UI, environment, and VFX materials
โ”œโ”€โ”€ ๐Ÿงฉ Prefabs/ # Cross-object widgets and reusable presentation prefabs
โ”œโ”€โ”€ ๐Ÿ“ฆ Resources/ # TinyGiants assets loaded through Unity Resources
โ”œโ”€โ”€ ๐Ÿงฌ Shaders/ # Shared UI, sprite, environment, and particle shaders
โ”œโ”€โ”€ ๐Ÿ–ผ๏ธ Sprites/ # Shared cursor, UI, and VFX textures
โ””โ”€โ”€ ๐Ÿ’ฅ VFX/ # Shared combat and class-ambience effect prefabs

The audio tree illustrates the shared boundary. A Mixer, BGM, ambience, general card sounds, combat hits, Intent telegraphs, status sounds, stingers, UI, and enemy voices can serve multiple battles. Audio dedicated to one card family belongs under that family instead

warning

Place object-specific assets directly under their owner and reserve Art/ for cross-object content. Establishing ownership before saving the file avoids changing unrelated references when assets move later

Placement rules for audio, VFX, and animationโ€‹

When a production pass adds final presentation assets, choose the directory by ownership

The asset belongs toPut it under
One card familyContent/Cards/<Family>/VFX/ (or Audio/, Animation/)
One enemyits Content/Units/Enemy/Enemy_<Class>/Enemy_<Name>_<Tier>/ folder
One player classContent/Units/Player/<Class>/VFX/ (or Audio/, Animation/)
One encounter classContent/Encounters/<Class>/VFX/ (or Audio/, Animation/)
Many unrelated objectsContent/Art/VFX/ (or Audio/, Animations/)

Create per-object subfolders when the first matching asset appears. There is no need to add an empty Audio/ directory to every card family in advance

Apply the same rule in a projectโ€‹

Demo content always uses this layout. Project-owned assets can apply the same ownership rule in this order:

  1. Decide which object owns the asset before importing it
  2. Put the asset in that object's folder, creating the subfolder if needed
  3. Use a shared folder only when the asset has no single owning object
  4. Keep databases separate from presentation assets
  5. Keep Demo and production content under separate roots so removing the Demo does not affect project assets