Commit Graph

76 Commits

Author SHA1 Message Date
yangbear 6650540dde fix: PingClickHandler重建+touchArray优先级+确认无缓入代码
- PingClickHandler.OnMouseDown开头Physics.RaycastAll检查touchArray优先
- 删除重建避免多次替换导致的括号不平衡
- AudioManager确认无fade/缓入代码,音频直接播放
2026-07-03 00:59:20 +08:00
yangbear 9deb4a68e1 fix: ping两阶段点击—全部4个首次点击后才允许第二击显示chanrao
阶段0(_firstClickCount<4): 依次首次点击显示ping模型,激活下个ping
阶段1(_firstClickCount==4): 第二击显示chanrao并隐藏ping
UndoSecondClick同步恢复_firstClickCount
2026-07-02 16:42:43 +08:00
yangbear 9bb15b9959 fix: ping描边改为世界空间水平环,移除X旋转避免视角不可见 2026-07-02 16:33:02 +08:00
yangbear 915898cb24 fix: 删除重复的public修饰符 2026-07-02 16:29:52 +08:00
yangbear db5006264f feat: ping两步点击+蓝色描边+StepManager步骤追踪
PingClickHandler:
- 蓝色圆环闪烁描边
- 第一点击: 停止闪烁显示模型
- 第二点击: 显示chanrao隐藏自己激活下个ping
- UndoSecondClick/UndoShow 支持撤销

StepManager:
- 新增PingStepPrevious/PingStepNext/RecordPingStep
- PreviousStep/NextStep ping步优先于woman步
- InitPingSteps初始化ping/chanrao引用
2026-07-02 16:22:17 +08:00
yangbear 393e3da16f feat: ping/chanrao交互系统 + camera3平滑切换
- PingClickHandler: 蓝色闪烁描边, 点击显示chanrao并隐藏自己, 链式激活下个ping
- ping链: 004→003→002→001 (从4开始)
- TouchPositionHandler: point1点击时黑幕渐入→切camera3→渐出
- PageController: 实验启动时激活ping.004
2026-07-02 16:07:02 +08:00
yangbear 2538eecb6b fix: 恢复丢失的AudioManager调用(PlayHomeBg/StopBgMusic/PlayExperimentBg)
多次替换导致ShowPage/OnFixationSelected/ActivateExperimentObjects中的调用丢失
2026-07-01 22:42:39 +08:00
yangbear 8f05587473 fix: AudioManager.I→FindObjectOfType避免Awake执行顺序导致I为null
PageController可能在AudioManager.Awake前Start, 导致I为null
改用FindObjectOfType在调用时查找
2026-07-01 22:39:36 +08:00
yangbear b4415dea4c feat: 音频系统统一重写—AudioManager管理全部音频
新增 AudioManager.cs 挂在 [Managers] 上:
- _bgSource: 背景音乐(首页/实验), spatialBlend=0, BgVolume可调
- _sfxSource: 音效(篮球/manCall), Stop()可打断
- _voiceSource: 语音中断播放

替换:
- PageController: BGMController→AudioManager.I
- OpeningFlowController: PlayClipAtPoint→AudioManager.I.PlayBasketball/ManCallSfx
- 删除 BGMController.cs
- 删除旧 AudioManager.cs(Assets/Scripts/Audio/旧版)
2026-07-01 22:35:36 +08:00
yangbear c3d1efbe2c fix: 删除Start()中_bgAudioSource初始化+修复PlayExperimentBg调用 2026-07-01 22:12:31 +08:00
yangbear d52a7e86aa fix: 清理PageController中残留的音频代码片段 2026-07-01 22:11:21 +08:00
yangbear efce2422b8 fix: 删除PageController中所有旧音频死代码—只留BGMController
旧PlayHomeBg/PlayExperimentBg/StopBgMusic/FadeInBg/PlayWomanAudioSequence
和对应字段全部删除,避免与BGMController静态方法共存
2026-07-01 22:10:30 +08:00
yangbear e1a9f90d3f feat: BGMController独立音频脚本—彻底脱离PageController复杂编辑历史
新增BGMController.cs挂在[Managers]上:
- Awake()中创建AudioSource(spatialBlend=0,vol=0.5)
- AssetDatabase兜底加载_homeBgClip/_experimentBgClip
- 静态方法PlayHomeBg/PlayExperimentBg/StopBgMusic
PageController调用改为BGMController.xxx
2026-07-01 22:00:41 +08:00
yangbear fa380b2ea5 fix: AudioSource搬到[Managers]+关多余AudioListener+跳过FadeInBg直设音量0.5
- [Managers]是始终活跃的非UI/非摄像机物体,切换摄像机不影响
- 禁用camera2/camera3的AudioListener消除多Listener冲突
- 暂时跳过FadeInBg直接设vol=0.5排除淡入干扰
2026-07-01 21:56:12 +08:00
yangbear 01ca708a43 fix: AudioSource从Canvas移到Main Camera—UI Canvas AudioSource无法正常播放
根因: Canvas上的AudioSource因UI Canvas系统限制无法正常输出声音
解决: 将AudioSource组件挂在Main Camera上(spatialBlend=0 2D模式)
Start/PlayHomeBg/PlayExperimentBg全部使用Main Camera的AudioSource
2026-07-01 21:52:39 +08:00
yangbear d1430d7b64 fix: AudioSource设为2D(spatialBlend=0)+FadeInBg加日志
Canvas处于3D空间远端位置(586,330,0),默认3D AudioSource音量衰减到0
spatialBlend=0改为2D全域模式
2026-07-01 21:50:12 +08:00
yangbear 511ef8a61a fix: PlayHomeBg/PlayExperimentBg用AssetDatabase.LoadAssetAtPath兜底加载clip
SerializerField引用因脚本重编译频繁丢失,改为代码中硬加载音频文件路径
不再依赖Inspector赋值
2026-07-01 21:47:46 +08:00
yangbear 8187f871e5 fix: 删除旧AudioManager组件+重设PageController音频引用(save scene) 2026-07-01 21:43:25 +08:00
yangbear fc63a9bbb3 fix: StopBgMusic加enabled=false彻底禁用AudioSource防止后续恢复
- StopBgMusic: Stop后加s.enabled=false, 日志打印clip名
- PlayHomeBg/PlayExperimentBg: 播放前设enabled=true, 先停旧fade再开新
- FadeInBg从volume=0渐入
2026-07-01 21:38:26 +08:00
yangbear 9cce193381 fix: 删除重复的_fadeCoroutine字段声明 2026-07-01 21:34:19 +08:00
yangbear c9eda6a9f7 fix: StopBgMusic停止Canvas上所有AudioSource,消除潜藏旧组件
之前的PlayHomeBg/PlayExperimentBg每次run可能残留重复AddComponent
现在GetComponents<AudioSource>()遍历停止全部,不依赖单引用
2026-07-01 21:32:22 +08:00
yangbear 798393edee fix: StopBgMusic强制Stop+中断FadeInBg协程,彻底解决bg不退
- StopBgMusic去掉isPlaying检查,AudioSource存在就强制Stop
- 保存FadeInBg协程引用到_fadeCoroutine
- StopBgMusic时先StopCoroutine(_fadeCoroutine)再Stop音频
2026-07-01 21:29:54 +08:00
yangbear f68e675022 fix: bg音乐缓入+语音打断+代码碎片清理
- PlayHomeBg/PlayExperimentBg 增加 FadeInBg 缓入协程(1.5s)
- TouchPositionHandler 使用静态共享 AudioSource 避免语音重叠
- 清理 PageController 中因多次编辑产生的代码碎片和括号混乱
2026-07-01 21:18:34 +08:00
yangbear 3a83140801 fix: 重建TouchPositionHandler.cs修复括号混乱编译错误 2026-07-01 21:07:01 +08:00
yangbear d0e4d5d8c5 fix: 音频系统全面修复 - 引用设置+PlayHomeBg重启+音效位置
1. 通过MCP设置所有AudioClip引用到Inspector字段
2. PlayHomeBg去掉clip比较检查,Stop后回来能重新播放
3. basketball/manCall PlayClipAtPoint改用transform.position
4. TouchPositionHandler voiceClip通过SerializedObject赋值
2026-07-01 21:04:38 +08:00
yangbear 34287ca203 fix: 音频系统代码清理 - 修复TouchPositionHandler多余} + 清理死代码
- TouchPositionHandler: 修复sed残留多余},改用PlayClipAtPoint
- PageController: StopBgMusic/HideAllPages分行,删除未调用的PlayWomanAudioSequence
2026-07-01 20:19:17 +08:00
yangbear b26a6e0fc7 fix: 移除重复的PlayHomeBg/StopBgMusic/PlayExperimentBg定义 2026-07-01 20:03:45 +08:00
yangbear 97b793e8f4 fix: 修复bg音乐方法被加到类外面的编译错误 2026-07-01 20:01:21 +08:00
yangbear 8dadc6a58d feat: 音频系统重构 - bg音乐流程修复 + woman语音按点位播放
改动:
1. TouchPositionHandler新增voiceClip字段, 点击时播放对应语音
2. PageController.ShowPage: 首页播放homeBg
3. OnFixationSelected: StopBgMusic()(开场动画开始时停bg)
4. ActivateExperimentObjects: 移除PlayWomanAudioSequence, 保留PlayExperimentBg
5. 新增PlayHomeBg/StopBgMusic/PlayExperimentBg方法
6. 删除_audioManager冗余引用

流程:
首页→homeBg播 → 选固定方式→bg停 → 开场动画→实验bg播
woman语音1→点击point1播, 语音2→point2, 语音3→point3
2026-07-01 19:51:41 +08:00
yangbear 9548492391 feat: 完整音频系统 - 首页/实验背景音乐+woman语音序列
- PageController新增_homeBgClip/_experimentBgClip/_womanClips数组
- Start()创建AudioSource循环播放背景音乐
- ShowPage控制: Home播首页bg, 离开首页停止bg
- ActivateExperimentObjects: 停止首页bg→播实验bg→顺序播放3段woman语音
- PlayWomanAudioSequence()协程: 每段播完后等0.5s再播下一段
2026-06-30 23:42:26 +08:00
yangbear 89037cb9dc feat: 开场音频系统 - 篮球音效+manCall
- OpeningFlowController新增_basketballClip/_manCallClip SerializeField
- Step2 Shoot开始时播放篮球音效
- Step3 manfull摔倒后播放manCall
- AudioSource.PlayClipAtPoint播放
2026-06-30 23:40:37 +08:00
yangbear 9ce2bccbeb fix: 实验启动时恢复显示TipPanel和DialogueBubble
HideAllPages()隐藏了这两个面板,ActivateExperimentObjects()中补上显示
2026-06-30 23:12:24 +08:00
yangbear b2714eb7a2 feat: 开场动画开关 _enableOpeningFlow (Inspector可调)
- 新增 [SerializeField] _enableOpeningFlow,默认true
- 设为false时直接跳过动画,切场景状态后回调
- 方便调试验证后续功能
2026-06-30 23:10:08 +08:00
yangbear 5778de59ab fix: 保存woman初始位置,上一步回到step0时能回到起点
- InitWomanSteps()保存_womanInitPos/_womanInitRot
- MoveWomanToStep(0)不再跳过,改为恢复到初始位置
- step=0时显示point1(通过UpdateTouchVisibility)
2026-06-30 23:07:19 +08:00
yangbear 4540ff4942 fix: 移除UIManager重复按钮绑定+InteractionSystem误触发——根因修复
根因: UIManager._btnLimbFixation/_btnSplintFixation调用SwitchFixation
与PageController的OnFixationSelected双重触发,StepManager._mode被设为Learn
导致OnStepInteractionComplete→NextStep→WomanStepNext自动跳过步骤。

修复:
1. UIManager.BindButtons移除_btnLimbFixation/_btnSplintFixation的SwitchFixation绑定
2. ExperimentFlowCoordinator.OnAnywhereClicked增加无Config步骤时忽略的注释守卫
2026-06-30 21:59:47 +08:00
yangbear 7519b37ee6 fix: 模型状态完全恢复 - man Animator重置 + touchPoint闪烁重启
- PlayOpeningFlow/ReturnToHome: 增加 _manAnimator.Play("manIdle") 强制重置动画状态
- TouchPositionHandler: 新增 OnEnable() 重新激活时自动重启闪烁协程+启用MeshRenderer
- 解决返回重来后 man 还停在 manfull、touchPoint 不再闪烁的问题
2026-06-30 15:09:31 +08:00
yangbear 039099e1f6 fix: Camera.main→GameObject.Find(Main Camera) 解决摄像机不同步
根因: Camera.main在SwitchToCamera2禁用主摄像机后返回null,
PlayOpeningFlow/ReturnToHome无法重新启用主摄像机。
全部改用GameObject.Find("Main Camera")按名字查找。
2026-06-30 14:55:40 +08:00
yangbear 3ebe010dfd fix: Previous/Next走对woman步进 + 开场动画支持重复播放
- PreviousStep/NextStep: woman自由步进优先于Config路径
- UpdateTouchVisibility: 修正索引 i==step (之前错误地用step-1)
- PlayOpeningFlow: 每次调用前重置man/man2/摄像机状态,支持返回重来
- PageController: 移除InitializeFromGameManager调用,不再覆盖woman步进
2026-06-30 14:47:51 +08:00
yangbear 2df79866d0 feat: 上一步/下一步支持woman步进撤销重做
- StepManager新增自由步进模式(无Config时):
  InitWomanSteps/RecordWomanStep/WomanStepPrevious/WomanStepNext
- PreviousStep/NextStep在_activeSteps为null时走woman步进
- TouchPositionHandler点击后通知StepManager.RecordWomanStep
- PageController在实验启动时调用InitWomanSteps初始化
- 上一步→woman回到上个位置+显示对应touchPoint
- 下一步→woman移到下个位置+显示对应touchPoint
2026-06-30 14:32:30 +08:00
yangbear 524ad732f9 feat: 双Pass膨胀描边shader替代LineRenderer
- 新增 Custom/OutlineUnlit shader: Pass1膨胀描边(Cull Front)+Pass2内芯填充
- BlueOutline.mat: 蓝色描边+半透蓝填充
- TouchPositionHandler改用MeshRenderer.enabled闪烁
- 球体挂MeshRenderer+Outline材质,0.4s闪烁
2026-06-30 03:02:12 +08:00
yangbear 542268932d fix: touchArray球体改为黑场后才出现,与medicalBox同步
- 所有touchArray子级初始隐藏
- ActivateExperimentObjects()中同步激活point1
2026-06-30 02:49:27 +08:00
yangbear 3d407dec63 fix: 描边从单环改为交叉双环(横+竖),世界空间绘制避免视角失真
- 水平环(XZ平面) + 垂直环(XY平面) 交叉形成球形轮廓
- useWorldSpace=true 直接在世界空间画,避免子物体旋转导致的视角变形
- 半径0.15, 线宽0.06, 亮蓝色, 两个环同步闪烁
2026-06-30 02:48:13 +08:00
yangbear ea12c51677 fix: 蓝描边重构 - Unlit/Color shader + 闪烁 + MeshRenderer自动关闭
- Shader: Sprites/Default → Unlit/Color (解决3D空间不可见)
- 线宽: 0.02→0.06, 半径: 0.12→0.15, 颜色: 亮蓝
- 新增闪烁协程: 每0.4s切换enabled
- Start()自动关闭MeshRenderer,只留描边
- 环抬高0.02防穿地
2026-06-30 02:32:27 +08:00
yangbear bc24cd922c fix: ActivateExperimentObjects 用 FindObjectsOfType(includeInactive) 替代 GameObject.Find
medicalBox 初始 inactive,GameObject.Find 只能找活跃对象
改为 FindObjectsOfType<GameObject>(true) 遍历所有对象查找
2026-06-30 02:26:32 +08:00
yangbear 2bb79e452e feat: touchArray 蓝描边 + 顺序显示(点击1→2→3)
- TouchPositionHandler: Start()创建LineRenderer蓝圈描边
- 新增 nextTouchObject 字段实现链式顺序显示
- 点击球体→移动woman→隐藏自己→显示下一个
- 场景初始: 仅point1活跃, 链: point1→point2→point3→null
2026-06-30 02:24:54 +08:00
yangbear 7100305765 feat: woman移动交互 + medicalBox显示 + ReturnToHome场景重置
- TouchPositionHandler: 点击touchArray球体→woman移动到womanPointArray对应位置
- medicalBox: 初始隐藏,实验开始后显示
- ReturnToHome: 重置场景(恢复man/man2, 隐藏woman/manInjury/medicalBox, 切回主摄像机, 重置Animator)
- ActivateExperimentObjects(): 实验启动时激活实验物件
2026-06-30 02:19:13 +08:00
yangbear cee3dd097c fix: HideAllPages 增加隐藏 DialogueBubble 2026-06-30 01:37:40 +08:00
yangbear 7d2696d65c fix: HideAllPages 增加隐藏 TipPanel 2026-06-30 01:22:54 +08:00
yangbear c88651be54 fix: Shoot也改用Play直接播放,彻底绕过Animator Controller过渡
- Shoot和manfull都使用_manAnimator.Play()直接播放
- 开头加yield return null让Animator处理重置
- 不再依赖SetBool参数过渡,消除所有Animator Controller不确定性
2026-06-30 00:58:58 +08:00
yangbear 1cd201da60 fix: 去掉Shoot的while循环,改为纯WaitForSeconds避免干扰Animator
用户已修复Animator Controller中Shoot循环问题,代码端不再需要每帧SetBool(IsFull,false)
2026-06-30 00:57:32 +08:00