using System.Collections.Generic; using UnityEngine; namespace Script.Gameplay.Interface { public interface ISignalSender { public bool IsEnableSendSignal { get; set; } public void SendSignal(bool active, GameObject sender); public static bool IsSendToSignalSender(GameObject sender) { IConnectable connectable = sender.GetComponent(); // 从连接线中查找是否有连接到ISignalSender的对象 if (connectable != null) { foreach (var connectionLine in connectable.ConnectionLines) { if (connectionLine != null) { GameObject targetObject = null; if (connectionLine.PointA.GetGameObject() == sender) { targetObject = connectionLine.PointB.GetGameObject(); } else if (connectionLine.PointB.GetGameObject() == sender) { targetObject = connectionLine.PointA.GetGameObject(); } if (targetObject != null && targetObject.GetComponent().IsEnableSendSignal) { return true; } } } } return false; } } }