using UnityEngine; namespace NBF { /// /// 默认物理组件 /// public class FishingDefaultPhysicsFeature : FishingLineNodeMotionFeature { [Header("Physics")] [SerializeField] private bool useGravity = true; protected override int DefaultPriority => 0; public override bool IsSupportedNode(FishingLineNode node) { return node != null && !node.IsRuntimeVirtualNode && node.Type != FishingLineNode.NodeType.Start; } public override bool CanControl() { return Node != null && Node.Body != null && IsSupportedNode(Node); } public override void OnMotionActivated() { ApplyPhysicsState(); } public override void TickMotion(float deltaTime) { ApplyPhysicsState(); } private void ApplyPhysicsState() { if (Node == null || Node.Body == null || !IsSupportedNode(Node)) { return; } Node.Body.useGravity = useGravity; } } }