Swap order: Shose now triggers Ping, and Ping triggers ChanraoTuibu. Final voice moved to ChanraoTuibu.

This commit is contained in:
yangbear
2026-07-11 05:35:30 +08:00
parent b18d28fc40
commit 5f4eff1cef
4 changed files with 40 additions and 25 deletions
@@ -2,7 +2,7 @@ using UnityEngine;
public class ChanraoTuibuHandler : MonoBehaviour
{
public GameObject nextObject;
private MeshRenderer _outlineMesh;
private float _lastClickTime;
private bool _isFinished;
@@ -76,20 +76,15 @@ public class ChanraoTuibuHandler : MonoBehaviour
var mr = GetComponent<MeshRenderer>(); if (mr != null) mr.enabled = true;
foreach (var r in GetComponentsInChildren<Renderer>(true)) { if (_outlineMesh != null && r == _outlineMesh) continue; r.enabled = true; } // 显示模型
// 如果由于意外 nextObject 丢失了,手动把它指向 ping.004
if (nextObject == null)
// 播放最后一句语音
var am = FindObjectOfType<AudioManager>();
if (am != null)
{
var mi = GameObject.Find("manInjury");
if (mi != null)
{
var p004 = mi.transform.Find("ping.004");
if (p004 != null) nextObject = p004.gameObject;
}
#if UNITY_EDITOR
var finishClip = UnityEditor.AssetDatabase.LoadAssetAtPath<AudioClip>("Assets/Audio/people/伤员一切正常,包扎完毕.mp3");
if (finishClip != null) am.PlayVoice(finishClip);
#endif
}
// 激活下一个(ping.004)
if (nextObject != null) { nextObject.SetActive(true); Debug.Log($"[ChanraoTuibu] → {nextObject.name}"); }
else Debug.LogError("[ChanraoTuibu] 致命错误:nextObject 依然是 null!找不到 ping.004");
}
public void ResetState()
@@ -99,7 +94,7 @@ public class ChanraoTuibuHandler : MonoBehaviour
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 = true;
if (nextObject != null) { nextObject.SetActive(false); var p = nextObject.GetComponent<PingClickHandler>(); if (p != null) p.UndoShow(); }
StopAllCoroutines();
StartCoroutine(BlinkOutline());
}
+15 -7
View File
@@ -122,14 +122,22 @@ public class PingClickHandler : MonoBehaviour
if (activePingCount == 0)
{
Debug.Log("[PingClick] 所有的 ping 都已经绑成 chanrao 了!播放完成语音。");
var am = FindObjectOfType<AudioManager>();
if (am != null)
Debug.Log("[PingClick] 所有的 ping 都已经绑成 chanrao 了!现在激活 chanraotuibu。");
var chanraotuibu = GameObject.Find("chanraotuibu");
if (chanraotuibu == null)
{
#if UNITY_EDITOR
var finishClip = UnityEditor.AssetDatabase.LoadAssetAtPath<AudioClip>("Assets/Audio/people/伤员一切正常,包扎完毕.mp3");
if (finishClip != null) am.PlayVoice(finishClip);
#endif
var mi = GameObject.Find("manInjury");
if (mi != null)
{
var t = mi.transform.Find("chanraotuibu");
if (t != null) chanraotuibu = t.gameObject;
}
}
if (chanraotuibu != null)
{
chanraotuibu.SetActive(true);
}
// 隐藏视频面板