Demo asset layout
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
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
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 to | Put it under |
|---|---|
| One card family | Content/Cards/<Family>/VFX/ (or Audio/, Animation/) |
| One enemy | its Content/Units/Enemy/Enemy_<Class>/Enemy_<Name>_<Tier>/ folder |
| One player class | Content/Units/Player/<Class>/VFX/ (or Audio/, Animation/) |
| One encounter class | Content/Encounters/<Class>/VFX/ (or Audio/, Animation/) |
| Many unrelated objects | Content/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:
- Decide which object owns the asset before importing it
- Put the asset in that object's folder, creating the subfolder if needed
- Use a shared folder only when the asset has no single owning object
- Keep databases separate from presentation assets
- Keep Demo and production content under separate roots so removing the Demo does not affect project assets