Files
zeling_v2/.github/instructions/asset-standards.instructions.md
Joywayer 84528403ec chore: add asset-standards instructions for auto-enforcement
Auto-attaches to all Assets/_Game/** file operations.
Contains: prefix table, directory rules, Addressables group/label
mapping, required editor tools, and hard rules.
References full specs in Docs/Standards/ for detail.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 13:38:27 +08:00

5.2 KiB

description, applyTo
description applyTo
Use when creating, moving, renaming, or placing any Unity game assets, ScriptableObjects, Prefabs, scenes, art, audio, or scripts under Assets/_Game/. Also use when writing Addressables group/label assignments or AddressKeys.cs constants. Enforces Docs/Standards/AssetFolderSpec.md and Docs/Standards/AddressablesLabelSpec.md. Assets/_Game/**

Asset Standards Enforcement

Full specifications:

  • Naming, directories, Addressables: Docs/Standards/AssetFolderSpec.md
  • Addressable labels & groups: Docs/Standards/AddressablesLabelSpec.md

When in doubt, READ THE SPEC FILE before deciding a path or name.


Asset Naming Prefix Table

Prefix System Example
PLY_ Player PLY_Player.prefab, PLY_Player01.mat
ENM_ Enemy ENM_GruntWarrior.prefab, ENM_E001_Stats.asset
WPN_ Weapon WPN_SkyBlade.prefab, WPN_SkyBlade_Data.asset
SKL_ Skill SKL_DashSlash_Data.asset
SPL_ Spell SPL_Fireball.asset
CHM_ Charm CHM_IronSkin.asset
PROJ_ Projectile PROJ_Arrow.prefab
VFX_ VFX VFX_HitSpark.prefab
COL_ Collectible COL_HPOrb.prefab
UI_ UI Prefab UI_HUD.prefab
SYS_ Persistent Manager SYS_GameManager.prefab
ENV_ Environment Structure ENV_Tilemap_Ground.prefab
WLD_ World Object WLD_Chest.prefab
EVT_ Event Channel SO EVT_PlayerDied.asset
CMB_ Combat SO CMB_DamageSource_Sword.asset
MAP_ Map data MAP_RoomData_Forest_01.asset
AUD_BGM_ BGM audio AUD_BGM_Forest.asset
AUD_SFX_ SFX audio AUD_SFX_HitImpact.asset
ABL_ Ability ABL_DoubleJump.asset
SET_ Settings SET_GlobalSettings.asset

Key Directory Rules

Asset Type Must Go In
Sprite / Texture _Game/Art/Characters/…, _Game/Art/Effects/…, _Game/Art/UI/…
AnimationClip / Controller Same …/{ID}/Animations/ folder as sprites
Material .mat Same …/{ID}/Materials/ folder as sprites
Sprite Atlas …/{ID}/Atlases/ subfolder beside its sprites
ScriptableObject .asset _Game/Data/{module}/ (never inside Prefabs/ or Art/)
Event Channel SO _Game/Data/Events/{module}/
Prefab (player/enemy/vfx/etc.) _Game/Prefabs/{category}/
Scene _Game/Scenes/ (test scenes → Scenes/Testings/)
Shader Graph _Game/Shaders/BaseASE/{category}/
HLSL include _Game/Shaders/Includes/
UXML / USS _Game/UI Toolkit/Layouts/ or Styles/
Skill SO _Game/Data/Progression/Skills/
Weapon SO _Game/Data/Combat/Weapons/
Charm SO _Game/Data/Progression/Charms/
Config SO (dynamic) _Game/Data/Settings/ or _Game/Data/{module}/

Addressables Group Assignment

Address Prefix Group
Scene_ Scenes
PLY_, WPN_ Player
ENM_ Enemies
PROJ_ Projectiles
VFX_ VFX_Common
UI_ UI
COL_ Collectibles
CHM_, Config/ Config
AUD_ Audio_Music
Room_{Region}_* Room_{Region} (dynamic)
Boss_{Name} Boss_{Name} (dynamic)

Addressables Label Assignment

Address Prefix Labels
PLY_ Preload
WPN_ Weapon, Preload
ENM_ Enemy
PROJ_ Poolable, Preload
VFX_ Poolable, Preload
COL_ Poolable, Preload
CHM_ Charms
Config/ Config
AUD_BGM_ BGM
AUD_SFX_ SFX
Scene_MainMenu Preload (exact override)
UI_FloatingDamageText Poolable, Preload (exact override)

Required: Use Editor Tools

Never create assets manually in Project window. Always use the editor tools:

Asset to Create Tool Menu Path
Enemy SO Enemy Data Manager BaseGames/Data/Enemy Data Manager
Weapon SO Weapon Editor BaseGames/Data/Weapon Editor
Weapon HitBox Prefab Weapon HitBox Wizard BaseGames/Create/Weapon HitBox Prefab
Skill SO Skill Editor BaseGames/Data/Skill Editor
Skill HitBox Prefab Skill HitBox Wizard BaseGames/Create/Skill HitBox Prefab
Player Form SO Character Wizard BaseGames/Data/Character Wizard
Boss skill data Boss Skill Sequence BaseGames/Data/Boss Skill Sequence
Addressables group/label sync Rule Sync BaseGames/Addressables/Rule Sync
Addressables batch register Addressable Batch Tool BaseGames/Addressables/Addressable Batch Tool
Validate address keys Validate Address Keys BaseGames/Addressables/Validate Address Keys

Hard Rules

  • All Address constants → AddressKeys.cs. Never hardcode strings in code.
  • All asset loading → AssetLoader.LoadAsync<T>(AddressKeys.Xxx). Never call Addressables.LoadAssetAsync or Resources.Load directly.
  • EVT_*.asset event channels are never registered as Addressables (use Inspector references).
  • Sub-Prefabs (HitBox, HurtBox, bones) are never registered as Addressables.
  • Test scenes in Scenes/Testings/ are never registered as Addressables.
  • All first-party assets must be under Assets/_Game/. Never place custom assets in third-party plugin folders.