Skip to content

室外场景搭建 - #21

Merged
habhab783124-lab merged 54 commits into
ULookup:mainfrom
habhab783124-lab:室外场景搭建
Jul 19, 2026

Hidden character warning

The head ref may contain hidden characters: "\u5ba4\u5916\u573a\u666f\u642d\u5efa"
Merged

室外场景搭建#21
habhab783124-lab merged 54 commits into
ULookup:mainfrom
habhab783124-lab:室外场景搭建

Conversation

@habhab783124-lab

Copy link
Copy Markdown
Collaborator

No description provided.

ULookup and others added 30 commits May 31, 2026 15:04
…Stub

- Add Relation field to PetRuntimeData (default 50, range 0-100)
- Add Relation to PetRuntimeSnapshotChangedEvent pipeline
- Add _angelMoodFill, _evilMoodFill, _relationFill serialized fields
- Drive Mood and Relation fill bars in RefreshPet/RefreshRelation
- Configure 5 progress bar Images as Filled+Horizontal in scene
- Reorganize profile UI sprites to new directory structure
…-space-sys

Scene conflict resolved with --theirs (remote) per user request:
space system changes from PR ULookup#16 take priority.
…merge)

Pet_Devil's Transform referenced Pet as parent (m_Father: 1549237633)
but Pet's children list only contained Pet_Angel (483894545).
Added 910500002 (Pet_Devil Transform) to Pet.m_Children.
PR ULookup#16 scene file is incompatible with current Unity version (reports
corrupted). Restore our working scene which has Pet_Angel + StatusPanel
bars. Pet_Devil needs to be created by duplicating Pet_Angel via MCP.
- Add CoinService + ICoinService with persistence (key "coin")
- Add GachaService + IGachaService with 7 collectibles, equal probability
- Add single (100) / multi (500 for 5) pull, 30 coin duplicate refund
- Add CoinDropController: spawns collectible coins on Pet every 10s
- Add GachaPanelController: tab-based grid UI with reward popup
- Add coin/gacha events via EventBus (CoinChanged, CoinCollected, GachaPull)
- Add GachaRuntimeBootstrap to Boot scene
- Wire up Panel_Collection and Pet coin drop in Apartment_Main scene
- Add 9 gacha UI sprites to Resources/Sprites/Collection/
…llapsed button visibility

PhoneAnimController.Awake() sets _canvasGroup.alpha = 0 which was
hiding all children including CollapsedButtonRoot. Move CanvasGroup
target to PhoneFrame so only the phone frame gets hidden.
LLM responses now include ---STATS--- JSON block with mood/energy/relation
deltas and personality dimension shifts, parsed and applied to PetRuntimeData
and PersonalityEvolutionService respectively.
…efault

_content was null so StubPanelBase.Awake() could not call SetActive(false),
causing Panel_Collection to display at startup instead of being hidden.
…Panel fields

- InputArea was outside PhoneFrame so CanvasGroup hide didn't cover it
- CollapsedButtonRoot Button onClick now calls ChatPhoneController.OnCollapsedButtonClicked
- ProfilePanelStub wired: radars, status bar fills, backgrounds, title icon
…tton

- Create PetStateValueConfig.asset with 0.005/s tick speeds (was 8/s)
- Assign PersonalityMatrixSO and PetStateValueSO to Pet_Angel/Pet_Devil
- Wire CollapsedButtonRoot and CloseButton onClick in ChatPhoneController.Awake
…ixes

- Move LLMConfig.asset to Resources folder so bootstrap can load it
- Fix bubble ContentSizeFitter HorizontalFit=PreferredSize to prevent zero-width bubbles
- Remove User bubble mirror (avatar always on left, uniform pivot)
- Fix InputField m_isRightToLeft causing reversed text display
- Remove Debug.Log leaking user text to production logs
- Add request version guard against stale HandleUserMessage resetting waiting state
- Add general exception catch in HandleUserMessage to prevent UI lockup
- Refactor AddMessagesFromHistory to rebuild layout once instead of per-bubble
- Add null checks for GetComponent<Button>() in ChatPhoneController.Awake
- Fix TypingTimeoutRoutine not stopping when SetWaitingState(false) called
- Delete persisted chat history on new play session (constructor clear)
- Fix markdown stripping in ExtractStatChanges to handle ```json prefix
- Set PhoneAnimController CanvasGroup interactable/blockRaycasts on open/close
- Replace CollectionPanelStub with GachaPanelController on Panel_Collection
- GachaPanelController: dynamic UI creation → [SerializeField] bindings
- Add all_tag/devil_tag tabs, sequential 5-draw coroutine, reward icon size config
- GachaService: evil_tag → devil_tag to match scene naming
- CoinService: initial balance 200
- Add CoinBalanceDisplay reusable component for auto coin display on any TMP_Text
- Bind TopResource coin display on PetStatus and Tarot panels via MCP
- Configure GridLayoutGroup on collection_board/Grid
LiberationSans and NotoSansSC now fallback to LXGWWenKai for
missing glyphs, fixing Chinese characters showing as tofu boxes.
… tab, font rebake tool

- Collection panel: add _drawAnimDuration (1.5s default) to delay reward window
  until after pull animation completes for both single and multi draw
- SpaceSys panel: replace stub with real controller that binds Angel/Devil mood
  and energy bars to PetRuntimeData via IPetRoster and PetRuntimeSnapshotChangedEvent
- Sidebar: default open PetStatus panel on apartment scene load via Start()
- Add FontAssetRebake editor tool (Tools menu) to re-bake LXGWWenKai SDF with
  4096 atlas, multi-atlas support, and ~6000 pre-baked common Chinese characters
feat: gacha动画延迟 + SpaceSys宠物数值条 + 默认PetStatus页 + 字体烘焙工具
场景合并策略:
- 本地为基底,添加 dev 的 StatusPanel 及子树
- Panel_Garden / Panel_Inventory 保留本地版本
- 所有家具和桌宠(Pet_Angel/Pet_Devil)保持本地不变
- 宠物脚本及动画回退至本地版本

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
UI侧栏面板现在与dev分支一致:仅包含Panel_PetStatus、SidebarOverlay、
Panel_Collection、Panel_Tarot、StatusPanel。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
补齐 snapshot event 中 Relation 字段,确保 PetController 构造事件时传入新字段,
与 dev 的 UI 面板(ProfilePanelStub 等)兼容。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
这些对象不在 dev 场景中,是侧栏中多余按钮和旧 Tab 系统的来源。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
habhab783124-lab and others added 24 commits June 1, 2026 15:40
dev 的 LXGWWenKai fallback 字体系统在本地缺少贴图资源,恢复本地字体配置。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…yPlaceholder 占位 UI

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
之前只替换了fileID相同的文档,未移除本地面板中fileID不同的旧文档,
导致面板UI叠加。现已移除全部本地面板子树,替换为dev版本。
家具、桌宠及其动画完全不受影响。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
TMP Settings 添加 LXGWWenKai 作为 fallback 字体,解决中文字符显示为方格的问题。
同时恢复 dev 的 LiberationSans/NotoSansSC 字体配置和 FontAssetRebake 编辑器工具。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- 字体系统:LXGWWenKai fallback、NotoSansSC 动态 Atlas、TMPFontBinder 自动绑定、FontAssetAutoRepair 编辑器工具
- 塔罗修复:DirectLLMBackend 空 content 回退到 LocalFallback,TarotRevealController 安全兜底
- 场景:Apartment_Main 同步 dev 侧栏面板结构 + 保留本地桌宠/家具/动画
- 新增 packages-merged-link/link.xml 包合并配置

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
合并时本地 Apartment 场景覆盖了 dev 版本,导致 PhoneChatRoot(手机聊天 UI)
及其所有子对象(消息列表、输入框、气泡、动画控制器等)丢失。
通过从 upstream/dev 场景中提取完整 61 个 YAML 文档并插入到本地场景来恢复。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- 聊天框/塔罗解读气泡字体排版调整(auto-sizing、行间距、字号范围)
- LLM 文字量减半(聊天 60 字/180 tokens,塔罗 100 字/250 tokens)
- 新增 Scene 视图预览:ChatMessageListView、ReadingBubble、TarotSummaryPreview
- 新增 UI 隔离工具(Ctrl+Shift+I 隔离 / Ctrl+Shift+U 恢复 / Ctrl+Shift+O 全部显示)
- 修复 PhoneChatRoot Canvas overrideSorting 导致按钮无响应
- 修复 SidebarController 重复点击按钮空操作
- 新增主菜单美术资源(补充/)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Debug Display Manager: 调试显示总开关(Editor Window)
- Furniture Label Validator: 场景家具标签/绑定完整性扫描
- UI Panel Diagnostic: UI 面板组件健康检查
- Tarot System Inspector: 塔罗系统运行时状态查看与记录管理
- Asset Reference Scanner: ScriptableObject/Prefab 资源引用丢失扫描
- Furniture Interaction Preview: Furniture 组件 Inspector 增强预览
- Pet Patrol Path: 宠物巡逻路径编辑器(Scene View 编辑 + Inspector)
- DebugDisplaySettingsSO: 运行时调试配置 ScriptableObject

接入守卫到 ChatMessageListView、ReadingBubble、TarotSummaryPreview、PetRuntimeBootstrap

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- 调整抽签系统 UI 布局(Apartment_Main.unity)
- 删除 6 个不再使用的 UI Sprite 资产
- DebugDisplaySettingsSO 默认值全改为 OFF,关闭调试白字
- 游戏封面/侧边栏/大地图英文标签改为中文(4 个 Authoring 脚本)
- TarotService.PickCard 正逆位随机化(50% 概率)
- DirectLLMBackend max_tokens 250→120 收紧输出字数
- TarotRuntimeBootstrap 删除"已选牌"Toast + Debug.Log 加 VerboseLogging 守卫

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
修改数值显示bug前

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
新功能:
- 每日情绪提交:EmotionInputPanelStub → EmotionGardenService → 生成情绪花
- 每周培育面板:7 格周视图(周一~周日),ISO 8601 周算法(年份限定 WeekId),前后周翻页导航
- 情绪花图鉴:按情绪+培育者累计开花数量,解锁阶段(单株花/小花丛)
- GardenPlotView:WorldMap 场景九宫格可视化情绪花状态(培育中/已开花)
- 跨天自动开花:RefreshBlooming 每日轮询,日期翻越后自动开花+入图鉴
- 自动存档/读档:AutoSaveManager OnApplicationQuit 保存 + Start 加载,autosave 槽位

开发者工具(DevMode 切换,Tools → Gemini-Lab → Toggle Dev Mode):
- GameClock.DebugAdvanceDays:拨快系统时钟,走真实跨天路径
- 调试偏移持久化:PlayerPrefs 存储,开发者模式跨 Play 会话连续,玩家模式忽略
- DevTools 面板(Canvas 右上角):进入下一天 / 重置时钟 / 清空花园数据
- 开发者/玩家存档隔离:Saves-Dev/ 与 Saves/ 两套独立目录

基础设施:
- WorldMapEmotionGardenUIPatch:幂等 Editor 补丁搭建情绪花园面板+按钮+DevTools
- WorldMapGardenZonePatch:天使/恶魔双花圃区域+九宫格预建
- AutoSetup:版本化自动升级(当前 v15),每版增量幂等
- GetOrAdd<T> 工具方法:消除 Unity Editor 假 null 陷阱
- DevMode 静态标志:EditorPrefs 持久化 + Play 中禁止切换 + 打包强制 false

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@habhab783124-lab
habhab783124-lab merged commit aaeaeb3 into ULookup:main Jul 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants