Implement limb fixation exam flow

This commit is contained in:
yangbear
2026-07-12 20:34:49 +08:00
parent 1d60eebb4f
commit 79e1fbb70b
71 changed files with 65272 additions and 2574 deletions
@@ -46,7 +46,8 @@ public class ChanraoTuibuHandler : MonoBehaviour
CreateOutlineMesh();
_isFinished = false;
StopAllCoroutines();
StartCoroutine(BlinkOutline());
bool isExam = GameManager.Instance != null && GameManager.Instance.CurrentMode == ExperimentMode.Exam;
if (!isExam) { StartCoroutine(BlinkOutline()); }
Debug.Log($"[ChanraoTuibu] OnEnable outline={_outlineMesh!=null}");
}
@@ -101,6 +102,7 @@ public class ChanraoTuibuHandler : MonoBehaviour
Debug.Log($"[ChanraoTuibu] {name} 被点击");
ActionHistory.Push(ActionHistory.ActionType.ChanraoTuibu, this);
var examMgr = FindObjectOfType<ExamFlowManager>(); if (examMgr != null) examMgr.OnObjectClicked(this);
_isFinished = true;
StopAllCoroutines();
if (_outlineMesh != null) _outlineMesh.enabled = false;
@@ -130,10 +132,15 @@ public class ChanraoTuibuHandler : MonoBehaviour
var mr = GetComponent<MeshRenderer>(); if (mr != null) mr.enabled = false;
var smr = GetComponent<SkinnedMeshRenderer>(); if (smr != null) smr.enabled = false;
foreach (var r in GetComponentsInChildren<Renderer>(true)) { if (_outlineMesh != null && r == _outlineMesh) continue; r.enabled = false; }
if (_outlineMesh != null) _outlineMesh.enabled = startBlink;
if (_outlineMesh != null)
{
bool isExam = GameManager.Instance != null && GameManager.Instance.CurrentMode == ExperimentMode.Exam;
_outlineMesh.enabled = startBlink && !isExam;
}
StopAllCoroutines();
if (startBlink && isActiveAndEnabled)
bool examMode = GameManager.Instance != null && GameManager.Instance.CurrentMode == ExperimentMode.Exam;
if (startBlink && isActiveAndEnabled && !examMode)
{
StartCoroutine(BlinkOutline());
}