using UnityEngine;
///
/// 挂在每个 ping 对象上。带蓝色闪烁描边,点击后显示对应 chanrao 并隐藏自己。
/// 从 ping.004 开始作为第一个(reverse order)。
///
public class PingClickHandler : MonoBehaviour
{
public GameObject chanraoObject;
public GameObject nextPing;
private MeshRenderer _meshRenderer;
void Start()
{
_meshRenderer = GetComponent();
if (_meshRenderer == null) _meshRenderer = GetComponentInChildren();
StartCoroutine(BlinkOutline());
}
void OnEnable()
{
_meshRenderer = GetComponent();
if (_meshRenderer == null) _meshRenderer = GetComponentInChildren();
if (_meshRenderer != null) _meshRenderer.enabled = true;
StopAllCoroutines();
StartCoroutine(BlinkOutline());
}
System.Collections.IEnumerator BlinkOutline()
{
while (true)
{
if (_meshRenderer != null)
_meshRenderer.enabled = !_meshRenderer.enabled;
yield return new WaitForSeconds(0.4f);
}
}
void OnMouseDown()
{
Debug.Log($"[PingClick] {name} 被点击");
if (chanraoObject != null)
{
chanraoObject.SetActive(true);
Debug.Log($"[PingClick] {chanraoObject.name} 已显示");
}
StopAllCoroutines();
if (_meshRenderer != null) _meshRenderer.enabled = false;
gameObject.SetActive(false);
if (nextPing != null)
{
nextPing.SetActive(true);
Debug.Log($"[PingClick] {name} → {nextPing.name} 已激活");
}
}
}