修改鱼线相关逻辑
This commit is contained in:
@@ -18,7 +18,7 @@ namespace NBF
|
||||
private FishingLineSolver _solver;
|
||||
|
||||
[Header("Node")] [SerializeField] private NodeType nodeType = NodeType.Tail;
|
||||
[SerializeField] private Rigidbody body;
|
||||
[SerializeField] public Rigidbody body;
|
||||
[SerializeField] private MonoBehaviour interaction;
|
||||
|
||||
[Header("Segment To Next Logical Node")] [Min(0f)] [SerializeField]
|
||||
|
||||
@@ -5,7 +5,15 @@ using UnityEngine;
|
||||
|
||||
namespace NBF
|
||||
{
|
||||
public class FishingLineSolver : MonoBehaviour
|
||||
public enum LineType
|
||||
{
|
||||
Hand,
|
||||
HandDouble,
|
||||
Spinning,
|
||||
SpinningFloat,
|
||||
}
|
||||
|
||||
public class FishingLineSolver : FGearBase
|
||||
{
|
||||
[Serializable]
|
||||
public sealed class ChainPoint
|
||||
@@ -36,6 +44,9 @@ namespace NBF
|
||||
public int VirtualNodeCount => Mathf.Max(0, GapLengths.Length - 1);
|
||||
}
|
||||
|
||||
|
||||
[SerializeField] public LineType LineType;
|
||||
|
||||
[Header("References")] [SerializeField]
|
||||
private Transform anchorTransform;
|
||||
|
||||
@@ -202,6 +213,12 @@ namespace NBF
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnInit()
|
||||
{
|
||||
var tipRb = Rod.Asset.LineConnectorRigidbody;
|
||||
anchorTransform = tipRb.transform;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (autoBuildOnStart)
|
||||
@@ -312,28 +329,46 @@ namespace NBF
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定顺序索引的逻辑节点。
|
||||
/// 索引基于 logicalNodes 配置顺序;超出范围或节点为空时返回 null。
|
||||
/// 根据类型获取逻辑节点类型
|
||||
/// </summary>
|
||||
public FishingLineNode GetLogicalNode(int logicalIndex)
|
||||
/// <param name="nodeType"></param>
|
||||
/// <returns></returns>
|
||||
public FishingLineNode GetLogicalNode(FishingLineNode.NodeType nodeType)
|
||||
{
|
||||
if (logicalNodes == null || logicalIndex < 0 || logicalIndex >= logicalNodes.Length)
|
||||
foreach (var fishingLineNode in logicalNodes)
|
||||
{
|
||||
return null;
|
||||
if (fishingLineNode.Type == nodeType)
|
||||
{
|
||||
return fishingLineNode;
|
||||
}
|
||||
}
|
||||
|
||||
return logicalNodes[logicalIndex];
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 尝试获取指定顺序索引的逻辑节点。
|
||||
/// 获取失败时返回 false,并将 node 置为 null。
|
||||
/// </summary>
|
||||
public bool TryGetLogicalNode(int logicalIndex, out FishingLineNode node)
|
||||
{
|
||||
node = GetLogicalNode(logicalIndex);
|
||||
return node != null;
|
||||
}
|
||||
// /// <summary>
|
||||
// /// 获取指定顺序索引的逻辑节点。
|
||||
// /// 索引基于 logicalNodes 配置顺序;超出范围或节点为空时返回 null。
|
||||
// /// </summary>
|
||||
// public FishingLineNode GetLogicalNode(int logicalIndex)
|
||||
// {
|
||||
// if (logicalNodes == null || logicalIndex < 0 || logicalIndex >= logicalNodes.Length)
|
||||
// {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// return logicalNodes[logicalIndex];
|
||||
// }
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 尝试获取指定顺序索引的逻辑节点。
|
||||
// /// 获取失败时返回 false,并将 node 置为 null。
|
||||
// /// </summary>
|
||||
// public bool TryGetLogicalNode(int logicalIndex, out FishingLineNode node)
|
||||
// {
|
||||
// node = GetLogicalNode(logicalIndex);
|
||||
// return node != null;
|
||||
// }
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前起点逻辑节点。
|
||||
|
||||
Reference in New Issue
Block a user