using System; using System.Collections; using System.Collections.Generic; using System.Linq; using NBC; // using Obi; using UnityEngine; namespace NBF { public enum LineType { Hand, HandDouble, Spinning, SpinningFloat, } public class FLine : FGearBase { public LineType LineType; [SerializeField] private bool isLureConnect; [SerializeField] private RodLine rodLine; [SerializeField] private Rope fishingRope; [SerializeField] private Rope bobberRope; public LureController Lure; public BobberController Bobber; public JointPinchController PinchController; // public event Action OnLinePulled; protected override void OnInit() { var tipRb = Rod.Asset.LineConnectorRigidbody; if (isLureConnect) { Lure.SetJoint(tipRb); Lure.EnableCollision(false); } else { fishingRope.startAnchor = tipRb; Bobber.SetJoint(tipRb); Lure.SetJoint(Bobber.rbody); Lure.gameObject.SetActive(true); Lure.EnableCollision(false); Lure.SetKinematic(false); } GetComponentsInChildren(includeInactive: true).ToList().ForEach(delegate(Transform i) { i.gameObject.SetActive(true); }); StartCoroutine(LureUseGravity()); if (isLureConnect) { fishingRope.Init(Rod); } else { fishingRope.Init(Rod); bobberRope.Init(Rod); } // rodLine.GenerateLineRendererRope(guides.ToArray(), _LineThickness); } public void InitTest(Rigidbody tipRb) { if (isLureConnect) { Lure.SetJoint(tipRb); Lure.EnableCollision(false); } else { fishingRope.startAnchor = tipRb; Bobber.SetJoint(tipRb); Lure.SetJoint(Bobber.rbody); Lure.gameObject.SetActive(true); Lure.EnableCollision(false); Lure.SetKinematic(false); } GetComponentsInChildren(includeInactive: true).ToList().ForEach(delegate(Transform i) { i.gameObject.SetActive(true); }); StartCoroutine(LureUseGravity()); if (isLureConnect) { fishingRope.Init(Rod); } else { fishingRope.Init(Rod); bobberRope.Init(Rod); } } private IEnumerator LureUseGravity() { yield return 1; Lure.gameObject.SetActive(false); Lure.gameObject.SetActive(true); yield return 1; Lure.RBody.useGravity = true; } public void SetTargetLength(float value) { Log.Error($"SetObiRopeStretch={value}"); if (value > 3) { // value -= 0.2f; } fishingRope.SetTargetLength(value); } public void SetLureLength(float value) { Log.Error($"SetObiRopeStretch={value}"); bobberRope.SetTargetLength(value); } } }