5.5 KiB
5.5 KiB
Technical Preferences
引擎与语言
- 引擎:Unity 6 (6000.3.7f1)
- 语言:C# (.NET Standard 2.1)
- 渲染管线:Universal Render Pipeline (URP) 17.3.0
- 物理:Unity Physics 3D + AI Navigation 2.0.9
输入与平台
- 目标平台:PC (Windows)、主机(PlayStation / Xbox)
- 输入方式:键鼠 + 手柄(双一等公民)
- 主要输入:手柄(动作游戏,面向主机)
- 手柄支持:Full
- 触控支持:None
- 平台备注:二次元 3D 动作游戏;战斗对输入响应要求严格。使用 Input System 1.18.0(新版,非 Legacy)。
命名规范
- 类名:PascalCase(如
CharacterBase、CombatManager、AttackAreaBase) - 变量:camelCase(字段/局部变量),PascalCase(属性)(如
currentHealth、MaxHealth) - 事件:
On前缀 + PascalCase(如OnPhaseChanged、OnNodeSelected、onAttack、onGetHit) - 文件名:与类名一致,PascalCase(如
CharacterBase.cs、RunManager.cs) - 场景/预制体:PascalCase 描述性命名(如
CityArena、PlayerCanvas、C1_Axe) - 常量:PascalCase 或 UPPER_SNAKE_CASE 视场景而定
- 架构模式:Submodule(轻量工具)/ Subcontroller(重逻辑)组合模式——避免深层继承。Partial Class 按职责拆分(如
FutureWand.cs、FutureWand_Functions.cs、FutureWand_AnimationCallbacks.cs)。
性能预算
- 目标帧率:60 FPS(主机基线)
- 帧预算:16.67ms
- Draw Call:待定——URP Batching 已启用
- 内存上限:待定——按平台分析
测试
- 框架:Unity Test Framework 1.6.0
- 最低覆盖:数值公式、玩法系统
- 必测项:数值公式、玩法系统
禁止模式
- 深层继承链——使用 Submodule/Subcontroller 组合代替
- 在可用 EventSubmodule 事件广播的场景中直接使用 Singleton 访问
- 原生 Unity Audio——所有音频走 Wwise 中间件
自有工具库(SLSUtilities 程序集)
重要:以下系统是项目自建的核心工具,非第三方依赖。在涉及 Feedback、动画事件、及通用工具时优先使用这些实现。
- Feedback 系统 (
Assets/Scripts/SLSUtilities/Feedback/) — 自研的屏幕反馈框架(Cinemachine 震动、后处理效果、时间缩放等),替代 More Mountains Feel - FunctionalAnimation 系统 (
Assets/Scripts/SLSUtilities/FunctionalAnimation/) — 自研的事件驱动动画框架,通过 FuncAnimPayload 在关键帧执行游戏逻辑 - 其它工具 — SLSUtilities 程序集下的其它通用工具类
允许的库 / 插件
Unity Package(通过 Package Manager)
- Universal Render Pipeline (URP) 17.3.0
- Visual Effect Graph 17.3.0
- Shader Graph 17.3.0
- Timeline 1.8.10
- Input System 1.18.0
- AI Navigation 2.0.9
- Localization 1.5.11
- Burst 1.8.27
- Collections 2.6.2
- Mathematics 1.3.3
- Editor Coroutines 1.0.1
第三方(项目内集成)
- Wwise (Audiokinetic) — 专业音频中间件(完整项目在 Cielonos_WwiseProject/)
- Odin Inspector (Sirenix) — 序列化与编辑器增强
- DOTween (Demigiant) — 动画缓动库
- UniRx — Unity 响应式扩展
- Behavior Designer (Opsive) — AI 行为树框架
- PotaToon — 二次元/卡通渲染管线(核心视觉身份)
- MagicaCloth 2 — 物理布料模拟
- DamageNumbers Pro — 浮动伤害数字
- Yarn Spinner — 叙事/对话系统(git: YarnSpinnerTool/YarnSpinner-Unity#current)
- Amplify Shader Editor — Shader 编辑工具
- LeanPool — 对象池优化
已弃用(素材保留但不再使用)
i2 Localization— 已弃用LeTai TranslucentImage— 已弃用More Mountains Feel— 已弃用,由 SLSUtilities/Feedback 自研系统替代Nice Vibrations— 已弃用
VFX 资源包
- MagicArsenal、Piloto Studio、VFX_Klaus、MasterStylizedFX、MasterStylizedProjectiles、CartoonVFX9X、Hovl Studio、INab Studio、Lana Studio、Vefects、BOXOPHOBIC、Archanor、Ground Impact VFX、HTraceSSGI、EnvironmentWeatherEffect
Architecture Decisions Log
- [尚无 ADR — 使用 /architecture-decision 创建]
引擎专家路由
- Primary:unity-specialist
- 语言/代码专家:unity-specialist(C# / MonoBehaviour / ScriptableObject 模式)
- Shader 专家:unity-shader-specialist(PotaToon、Shader Graph、URP 自定义 Shader)
- UI 专家:unity-ui-specialist(UGUI Canvas + UI Toolkit 混合)
- 额外专家:unity-addressables-specialist(若后续采用 Addressables)
- 路由备注:本项目使用 URP + PotaToon 实现二次元渲染。战斗系统使用自研 FuncAnim(Functional Animation)事件驱动架构——Shader 工作常与 VFX Feedback 绑定。UI 主要基于 UGUI Canvas,部分界面使用 UI Toolkit。
文件扩展名路由
| 文件扩展名 / 类型 | 派发专家 |
|---|---|
游戏代码 (.cs) |
unity-specialist |
Shader / 材质文件 (.shader, .shadergraph, .mat) |
unity-shader-specialist |
UI / 界面文件 (.uxml, .uss, Canvas 预制体) |
unity-ui-specialist |
场景 / 预制体 / 关卡文件 (.unity, .prefab) |
unity-specialist |
| 原生扩展 / 插件文件 | unity-specialist |
| 总体架构评审 | unity-specialist |