using UnityEngine; namespace NBF { public abstract class FishingLineNodeFeature : MonoBehaviour { /// /// 当前功能组件所属的节点。 /// public FishingLineNode Node { get; private set; } /// /// 当前功能组件所属的鱼线求解器。 /// public FishingLineSolver Solver { get; private set; } /// /// 将当前功能组件绑定到指定节点和求解器。 /// public void Bind(FishingLineNode node, FishingLineSolver solver) { Node = node; Solver = solver; if (!IsSupportedNode(node)) { Debug.LogWarning($"{GetType().Name} 不适用于节点 {node.name} 的当前配置。", this); } OnBind(); } /// /// 当前功能组件是否支持挂在该节点上。 /// 子类可按节点类型、尾节点类型或产品标识做限制。 /// public virtual bool IsSupportedNode(FishingLineNode node) { return node != null; } /// /// 节点与求解器绑定完成后的回调。 /// protected virtual void OnBind() { } /// /// 鱼线链路重建完成后的回调。 /// public virtual void OnLineBuilt() { } /// /// 鱼线达到断线条件后的回调。 /// public virtual void OnLineBreakRequested() { } } }