Fix Ping restart collider issue and Shose flash issue

This commit is contained in:
yangbear
2026-07-10 02:11:11 +08:00
parent a90eb4222a
commit 193d93f852
3 changed files with 14 additions and 31 deletions
-29
View File
@@ -61,35 +61,6 @@ public static class ActionHistory
return true;
}
else if (item.Type == ActionType.PingFirst)
{
// 如果在定位(第一阶段),则重置所有的定位,退回到只有第一个点发光的状态
while (History.Count > 0 && History.Peek().Type == ActionType.PingFirst)
{
History.Pop();
}
var allPings = Object.FindObjectsOfType<PingClickHandler>(true);
foreach (var p in allPings)
{
if (p.chanraoObject != null) p.chanraoObject.SetActive(false);
if (p.pingIndex == 0)
{
p.gameObject.SetActive(true);
p.ResetState();
}
else
{
p.UndoShow();
}
}
var sm = Object.FindObjectOfType<StepManager>();
if (sm != null) sm.SetPingStepIndex(0);
return true;
}
if (item.Type == ActionType.Shose)
{
+14 -1
View File
@@ -16,6 +16,8 @@ public class PingClickHandler : MonoBehaviour
if (_modelRenderer == null) _modelRenderer = GetComponentInChildren<MeshRenderer>();
foreach (var r in GetComponentsInChildren<Renderer>(true)) r.enabled = false;
if (GetComponent<Collider>() == null) gameObject.AddComponent<SphereCollider>().radius = 0.5f;
var col = GetComponent<Collider>();
if (col != null) col.enabled = true;
CreateOutlineMesh();
_modelShown = false;
_isBlinking = true;
@@ -163,7 +165,16 @@ public class PingClickHandler : MonoBehaviour
StopAllCoroutines();
StartCoroutine(BlinkOutline());
}
public void UndoShow() { HideSelf(); }
public void UndoShow()
{
_modelShown = false;
_isBlinking = false;
StopAllCoroutines();
if (chanraoObject != null) chanraoObject.SetActive(false);
foreach (var r in GetComponentsInChildren<Renderer>(true)) r.enabled = false;
var col = GetComponent<Collider>(); if (col != null) col.enabled = false;
gameObject.SetActive(false);
}
private void HideSelf()
{
@@ -183,6 +194,8 @@ public class PingClickHandler : MonoBehaviour
public void ResetState()
{
_modelShown = false;
var col = GetComponent<Collider>();
if (col != null) col.enabled = true;
_isBlinking = true;
if (_modelRenderer != null) _modelRenderer.enabled = false;
// 隐藏自身模型
-1
View File
@@ -432,7 +432,6 @@ public class PageController : MonoBehaviour
}
h.nextObject = chanraotuibu;
}
shose.SetActive(false);
shose.SetActive(true);
Debug.Log("PageController: 开场动画结束,Shose 已立刻激活");
}