46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
namespace NBF
|
|
{
|
|
/// <summary>
|
|
/// 默认物理组件
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|
|
} |