using UnityEngine; namespace NBF { public abstract class FishingLineNodeMotionFeature : FishingLineNodeFeature { [Header("Motion Control")] [SerializeField] private int priorityOffset; /// /// 当前运动控制组件的优先级。 /// 值越大,越容易取得节点运动控制权。 /// 最终优先级 = 默认优先级 + 调整值。 /// public int Priority => DefaultPriority + priorityOffset; /// /// 当前运动控制组件的默认优先级。 /// 子类可通过重写该值,决定自己相对默认物理的抢占能力。 /// protected virtual int DefaultPriority => 0; /// /// 当前帧该运动控制组件是否希望接管节点运动。 /// public abstract bool CanControl(); /// /// 当前运动控制组件开始接管节点时的回调。 /// public virtual void OnMotionActivated() { } /// /// 当前运动控制组件失去节点控制权时的回调。 /// public virtual void OnMotionDeactivated() { } /// /// 当前运动控制组件正在接管节点时,每个 FixedUpdate 执行的逻辑。 /// public abstract void TickMotion(float deltaTime); } }