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