393e3da16f
- PingClickHandler: 蓝色闪烁描边, 点击显示chanrao并隐藏自己, 链式激活下个ping - ping链: 004→003→002→001 (从4开始) - TouchPositionHandler: point1点击时黑幕渐入→切camera3→渐出 - PageController: 实验启动时激活ping.004
61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 挂在每个 ping 对象上。带蓝色闪烁描边,点击后显示对应 chanrao 并隐藏自己。
|
|
/// 从 ping.004 开始作为第一个(reverse order)。
|
|
/// </summary>
|
|
public class PingClickHandler : MonoBehaviour
|
|
{
|
|
public GameObject chanraoObject;
|
|
public GameObject nextPing;
|
|
|
|
private MeshRenderer _meshRenderer;
|
|
|
|
void Start()
|
|
{
|
|
_meshRenderer = GetComponent<MeshRenderer>();
|
|
if (_meshRenderer == null) _meshRenderer = GetComponentInChildren<MeshRenderer>();
|
|
StartCoroutine(BlinkOutline());
|
|
}
|
|
|
|
void OnEnable()
|
|
{
|
|
_meshRenderer = GetComponent<MeshRenderer>();
|
|
if (_meshRenderer == null) _meshRenderer = GetComponentInChildren<MeshRenderer>();
|
|
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} 已激活");
|
|
}
|
|
}
|
|
}
|