Files
daluandou/CODELY.md
T
huadexuan fb56cd7ede ```
docs(clipboard): 添加剪贴板功能相关图片资源

添加了两个剪贴板功能的截图文件,用于文档说明和功能展示。
```
2026-09-11 18:07:21 +08:00

14 KiB
Raw Blame History

Codely Structured Memories

User

  • [2026-09-09 13:43:50] 用户是 10 年 Java 后端开发,可以提供后端接口,但当前项目处于原型验证阶段,暂不需要服务器。

Feedback

  • [2026-08-28 11:36:37] 用户偏好 Unity 操作分步骤执行:一次只做一个明确动作并先验证结果,避免连续执行大量工具调用导致超时。Why: 之前连续操作出现 Stream idle timeout。How to apply: Unity 场景、Prefab、组件和运行验证都采用“读取→单步修改→确认”的节奏。
  • [2026-08-30 22:44:50] 每实现一个角色技能,都要同步更新《场景和角色设计.md》文档末尾的角色与技能描述表格。Why: 用户希望实现进度与设计文档保持同步。How to apply: 后续新增或修改角色技能时,在同一任务中追加或更新对应表格行。
  • [2026-08-31 14:52:17] 角色配色应以自然、克制的主体色为主,每个角色加入一到两处对比度较强的颜色作为识别点,避免整体过于花哨或过于朴素。Why: 用户希望角色既有视觉记忆点,又保持统一、易建模的造型。How to apply: 后续角色提示词使用材质和种族决定主体配色,仅在围巾、护腕、局部毛色等少量位置加入强对比色。
  • [2026-08-31 15:30:02] 角色技能表中的攻击速度应以“普攻间隔(秒/次)”展示,而不是“次/秒”。Why: 用户更直观地关注单位每隔多少秒攻击一次。How to apply: 后续新增或调整角色数值时统一使用秒/次,并按间隔数值维护平衡。
  • [2026-09-01 14:10:12] 用户在 Unity 脚本或 Animator 问题排查中可优先要求“先改、不运行验证”,此时只执行读取、针对性修改和必要的编译/配置确认。Why: Play Mode 或视频验证容易触发 Stream idle timeout。How to apply: 除非用户明确要求运行验证,否则遇到类似超时后先不进入 Play Mode。
  • [2026-09-03 14:32:39] 眩晕状态特效应优先使用 Unity Particle System,并以星星贴图作为粒子,而不是用运行时复制多个 Sprite 作为最终实现。Why: 用户明确希望得到真正的粒子效果,Sprite 复制只能作为临时占位。How to apply: 后续制作眩晕及类似循环状态特效时,优先创建可复用的粒子 Prefab 并接入通用状态系统。
  • [2026-09-04 10:39:23] 后续所有角色图片生成提示词禁止出现米白色衣服,并一并排除象牙白、奶油白、乳白色及其他近似暖白色服装。Why: 用户明确要求角色服装不再使用米白色。How to apply: 新增或改写任何角色提示词时,服装与护甲优先使用明确的冷色、深色或自然色,并在提示词中写出排除项。
  • [2026-09-04 11:21:06] 角色辨识度优先依靠大轮廓、简化脸部、职业特征大色块和少量核心识别点,不依赖复杂细节或精细贴图;尤其要适配 2.5D 远距离显示。Why: 用户希望即使模型和贴图较粗糙,也能一眼识别角色职业与身份。How to apply: 后续角色提示词优先设计头部框架、面部符号、服装剪影和能力核心,控制小装饰与高频纹理。
  • [2026-09-04 14:12:02] 需要 Play Mode 验证时先询问用户,由用户手动点击 Play 并反馈结果,不要自动进入 Play Mode。Why: 可节约时间并避免 Unity 运行验证导致工具等待或超时。How to apply: Unity 动画、角色行为和运行时问题排查中,完成编辑态修改后停在编辑器等待用户验证。
  • [2026-09-05 10:16:49] Unity 运行验证默认不由助手自动进入 Play Mode;完成编辑态修改、编译和场景保存后,等待用户手动点击 Play 并反馈结果。Why: 用户希望避免运行验证导致等待或超时。How to apply: 角色、动画 Event 和技能接入任务优先做编辑态验证,除非用户明确要求自动运行测试。
  • [2026-09-09 12:11:59] 当用户明确指出现象和修复目标时,优先按用户给出的事实做针对性修改,不继续进行冗长排查。Why: 用户明确指出法师没有生成火球,并要求直接给新建火球 Prefab 补脚本。How to apply: 先读取目标资产确认,再执行最小必要修改;只有修改仍失败时才扩大排查范围。
  • [2026-09-09 13:43:50] 能量恢复速度应该更慢一些,用户建议改为 3 秒恢复 1 格。Why: 1 秒 1 格太快,不利于战斗节奏控制。How to apply: 召唤系统能量恢复速率应偏慢,给玩家资源压力。
  • [2026-09-09 20:37:24] 用户希望提前实现数据架构而非临时方案,即使当前阶段功能简单。Why: 用户有 10 年后端开发经验,理解数据分层的重要性,希望逐步完善而非推倒重来。How to apply: 对于有明确扩展方向的功能(升级、存档、联网),优先设计可扩展架构并临时写死数据,而非等需求明确后再重构。
  • [2026-09-10 18:38:45] 正交俯视视角(38-43°)下,垂直墙面几乎看不见(只能看到墙顶),因为墙面平行于视线方向被自身遮挡。适合的装饰物:高耸物体(旗帜、石柱)、有明显剪影的物体(木箱、碎石堆)、对比色强的物体;不适合:低矮平面物(矮墙、栅栏)、细长水平物(绳索)。Why: 这是正交俯视视角的固有盲区,无法通过调整角度完全解决(角度太平会牺牲战场全局视野)。How to apply: 场景装饰设计时优先使用垂直高度≥2米的物体,避免依赖水平或低矮结构。

Project

  • [2026-08-28 14:26:56] 弓箭手远程箭矢的设计要求:保持发射时高度水平飞行,命中目标后直接结算伤害并销毁,不产生实体物理击退。Why: 当前玩法希望远程攻击是命中判定而非物理推动。How to apply: 后续调整箭矢、Projectile 或弓箭手攻击逻辑时保持这一行为。

  • [2026-08-28 18:06:13] 小游戏对外名称确定为《召唤之战》,整体采用竖屏布局;主界面不需要“技能、背包、属性”入口或相关模块。Why: 备案与产品定位已确定,UI 需保持简洁并适配竖屏。How to apply: 后续设计备案图、主菜单或游戏 UI 时遵循此名称、方向和功能范围。

  • [2026-08-29 11:44:51] 《召唤之战》战斗设计倾向简化:单位解锁后立即拥有完整技能,升级只提升基础数值;战斗召唤栏采用底部正方形头像卡片,战斗场景第一版优先将背景图贴到现有 BattlePlatform,而非制作完整3D场景。

  • [2026-08-31 11:31:00] 角色图片生成统一采用 3D 卡通、非写实、单角色正视图;人形角色使用标准 A-pose,非人形角色使用稳定自然姿态。Why: 便于 3D 建模与动画制作,并符合《召唤之战》的视觉方向。How to apply: 后续新增各章节角色提示词时遵循该标准,并记录在《角色与技能说明.md》。

  • [2026-09-02 16:44:35] 主角定位确定为“召唤师优先、法师辅助”的人类召唤师,主要战斗力来自召唤单位,主角仅用基础法术补刀和牵制;视觉上需要通过召唤核心、学院符文和独特剪影与普通法师区分。Why: 保持召唤系统的核心地位并提高主角辨识度。How to apply: 后续主角技能、模型、动画和 UI 设计都应围绕召唤师身份展开。

  • [2026-09-02 23:50:59] 《召唤之战》状态效果方案确定:所有可控制单位共用 Stun/StatusEffect 系统,眩晕暂停当前 Animator 与战斗逻辑,使用通用头顶星星提示,重点角色以后再补专属眩晕动画。Why: 降低首版制作量并保持各单位行为一致。How to apply: 新增眩晕、减速、沉默等控制效果时优先扩展通用状态组件,不在技能脚本中直接操作具体角色动画。

  • [2026-09-03 18:09:56] 《召唤之战》大招统一在下一次普攻开始前判定:先通过现有寻敌逻辑获得有效目标,能量满则优先释放大招并消耗能量,跳过本次普攻;没有有效目标时不释放且保留能量。Why: 避免普攻命中击杀目标后仍立即触发大招。How to apply: 后续新增或修改角色技能时遵循该统一触发时机。

  • [2026-09-03 18:52:21] 《召唤之战》采用 2.5D 战斗呈现,角色设计需要在俯视斜角和远距离下保持清晰剪影与可读的大色块。Why: 用户希望角色在实际战斗镜头中仍容易区分。How to apply: 后续角色图片、模型、服装和特效设计优先考虑 2.5D 视角下的轮廓识别,不依赖细小装饰。

  • [2026-09-03 19:12:39] 角色图片提示词与游戏内装备分离:盾卫的角色本体图片必须明确不出现盾牌,塔盾作为独立武器/装备资产单独生成与配置。Why: 便于后续替换和挂载装备,避免角色模型自带盾牌影响游戏配置。How to apply: 后续生成盾卫或其他可换装角色图片时,只描述身体与服装本体,不把可独立配置的装备画进角色图。

  • [2026-09-06 22:14:43] 《召唤之战》当前先确定每关携带 5 种角色,战斗中固定显示 5 张召唤卡;UI 采用大框底图加独立可复用卡片、角色头像和运行时状态元素。Why: 先控制竖屏战斗界面复杂度并便于调试。How to apply: 后续召唤 UI、卡组和能量系统按 5 个固定卡位设计,不把动态文字、冷却和能量豆烘焙进静态图片。

  • [2026-09-09 12:23:17] 攻击系统已从动画结束 Event 改为攻击命中 Event 触发。UnitBase 通过 OnAttackEffect() 统一处理四种攻击类型:MeleeDirect(近战直接伤害,已实现)、RangedProjectile(远程锁敌飞行物,已实现)、MeleeArea(近战范围,预留)、RangedArc(远程抛物线,预留)。攻击动画结束由脚本自动检测 normalizedTime,不再依赖 OnAttackAnimationEnd Event。Why: 用户需要远程攻击等箭矢碰撞后才扣血,而非动画中途直接伤害。How to apply: 所有攻击动画只需在命中帧添加 OnAttackEffect Event;近战保持 MeleeDirect,远程单位设为 RangedProjectile 并配置 projectilePrefab/projectileSpawnPoint。

  • [2026-09-09 20:37:24] 召唤能量和冷却系统已完成,玩家角色数据架构已完成:ManaSystem 单例管理能量(最大 10,3 秒恢复 1 点),MainCharacterCombat 扩展能量检查(人类士兵消耗 2,弓箭手消耗 3),SummonCardButton 接入冷却逻辑(5 秒冷却,UI 显示遮罩和倒计时),能量豆 UI 已配置,冷却遮罩在非冷却时完全隐藏。CharacterData 支持基础属性和升级成长,PlayerCharacterData + PlayerDataManager 实现玩家角色等级和属性计算,召唤时传递最终属性给 UnitBase。

  • [2026-09-09 20:37:24] 玩家角色数据架构已完成:CharacterData 存储基础属性(1级)和成长值(每级加成),PlayerCharacterData 存储玩家角色等级和星级,PlayerDataManager 单例管理玩家拥有的角色和当前卡组(临时写死)。召唤时从 CharacterData + PlayerCharacterData 计算最终属性并传递给 UnitBase.InitializeFromPlayerData()。升级系统正常工作(1级 100血/50攻,3级 120血/60攻)。后续扩展:存档系统、卡组配置界面、升级界面、角色解锁、后端接口。

  • [2026-09-09 22:17:58] 第一关地图重新设计已完成:地图扩展到120单位(Z: -24到96),创建3个波次生成器(WaveSpawner)在Z=25/55/85,添加视觉标识物(旗帜、石柱、石墙)标记战斗区域。摄像机修正:旋转(43,0,0)位置(0,18,-5),朝向+Z方向与主角前进方向一致。召唤系统优化:初始状态无冷却遮罩,冷却时间从5秒改为1秒(能量已控制召唤频率)。

  • [2026-09-10 11:03:00] 第一章第一关地图(Level1-1.scene)已完成:120单位长地图(Z: -24到96),使用用户自制的6类真实3D模型装饰(石墙/木栅栏/旗帜/木箱/石柱/碎石堆),共34个物体分布在左右装饰带和3个波次标记位置。摄像机设置为2.5D视角(位置0,18,-5,旋转43°)。Why: 地图基础结构已完成,可以开始添加战斗逻辑和敌人生成器。How to apply: 后续关卡可复制此场景作为模板,调整装饰布局即可。

  • [2026-09-10 18:38:13] 第一关地图(Level1-1.scene)已采用"皇室战争"风格简化设计:移除所有边界矮墙(俯视角只能看到墙顶),改用旗帜+石柱交替排列标识边界(X=±5.5,Z轴8个位置交替);保留中间战道掩体(木箱×6、碎石堆×4);天空改为纯色蓝灰色+线性雾效(起始40m,结束100m);摄像机添加边界Clamp限制(X: -77, Z: -3293,宽松模式),主角靠近边界时摄像机停止跟随;光照调整为从后上方照射(50°, 0°, 0°),角色正面清晰可见。Why: 正交俯视视角下垂直墙面几乎看不见(只能看到墙顶),旗帜+石柱有高度和轮廓,视觉识别强。How to apply: 后续关卡延续此风格,避免使用低矮平面装饰物。

  • [2026-09-10 18:38:32] 召唤逻辑已优化碰撞处理:当目标位置被占用时,自动螺旋搜索周围空位(左右搜索8次×前后3层×2方向,约102个候选点);如果所有位置都被占用,自动退还能量豆并取消召唤,避免浪费能量。参数:summonSearchCount=8, summonDepthSearchCount=3, summonSearchStep=0.8f, summonDepthSearchStep=1f。

  • [2026-09-11 14:55:27] 敌人血条颜色问题已修复:WorldHealthBar 在 Awake() 时根据 GameObject.tag 判断颜色,WaveSpawner 在 Instantiate() 后设置标签会导致时序错误(血条已创建成绿色)。解决方案:直接在敌人 Prefab 上设置 Enemy 标签,确保 Awake() 时标签已正确。已修改狼人/蓝色怪物/弓箭猎人/石巨人四个 Prefab。Why: 血条颜色在对象创建时确定,后设置标签无法自动刷新。How to apply: 后续新增敌人 Prefab 时直接在 Prefab 上设置 Enemy 标签,不依赖运行时代码设置。

Reference

  • [2026-09-09 12:23:17] 飞行物脚本 Projectile.cs 负责锁敌追踪、碰撞检测和伤害结算。箭矢预制体 ArrowProjectile_White.prefab 已配置 Projectile 组件和 CapsuleCollider(Is Trigger)。远程单位需在攻击动画松弦帧添加 OnAttackEffect Event,并在 UnitBase 中设置 attackType=RangedProjectile、projectilePrefab、projectileSpawnPoint。