diff --git a/Assets/Scripts/Interaction/PingClickHandler.cs b/Assets/Scripts/Interaction/PingClickHandler.cs index 65e0190..2153d1e 100644 --- a/Assets/Scripts/Interaction/PingClickHandler.cs +++ b/Assets/Scripts/Interaction/PingClickHandler.cs @@ -21,13 +21,17 @@ public class PingClickHandler : MonoBehaviour if (col == null) { var sphere = gameObject.AddComponent(); - sphere.radius = 0.5f; + sphere.radius = 0.5f; // 可以适当增加,保证能点到 col = sphere; } else if (col is BoxCollider bc) { // 如果是之前的 BoxCollider,把它改大一点,确保能点到 - bc.size = new Vector3(Mathf.Max(bc.size.x, 0.5f), Mathf.Max(bc.size.y, 0.5f), Mathf.Max(bc.size.z, 0.5f)); + bc.size = new Vector3(Mathf.Max(bc.size.x, 0.8f), Mathf.Max(bc.size.y, 0.8f), Mathf.Max(bc.size.z, 0.8f)); + } + else if (col is SphereCollider sc) + { + sc.radius = Mathf.Max(sc.radius, 0.5f); } col.enabled = true; @@ -160,9 +164,17 @@ public class PingClickHandler : MonoBehaviour public void ReEnableBorder() { - // 如果它已经被隐藏(包扎完毕),则不应该重新激活边框! + // 关键:在第二阶段被激活时,先检查我们是否已经被完成了 + // 只有 _modelShown 为 true,并且没有被最终隐藏时,才能被激活 + if (!_modelShown) return; + + // 如果模型已经被替换成 chanrao 并且隐藏了自己,就不应该再被激活 var col = GetComponent(); - if (col != null && !col.enabled) return; + if (chanraoObject != null && chanraoObject.activeSelf) + { + if (col != null) col.enabled = false; + return; + } _isBlinking = true;