Files
Fishing2/Assets/Scripts/Fishing/Rope/Rope.cs
2026-01-24 18:14:07 +08:00

48 lines
1.0 KiB
C#

using NBF;
using Obi;
using UnityEngine;
public class Rope : MonoBehaviour
{
private FRod _rod;
public bool isFloatRope;
[SerializeField] private ObiRope rope;
[SerializeField] private ObiRopeCursor cursor;
[SerializeField] private float percentageElasticity = 0.2f;
private float stretchScale;
private void Awake()
{
rope = GetComponent<ObiRope>();
}
public void Init(FRod rod)
{
_rod = rod;
if (_rod)
{
if (isFloatRope)
{
LineLength_OnValueChanged(_rod.floatLength);
}
else
{
LineLength_OnValueChanged(_rod.lineLength - _rod.floatLength);
}
}
}
public void LineLength_OnValueChanged(float length)
{
cursor = cursor == null ? GetComponent<ObiRopeCursor>() : cursor;
stretchScale = Mathf.Clamp(length - percentageElasticity, 0f, float.PositiveInfinity);
}
private void Update()
{
rope.stretchingScale = stretchScale;
}
}