修改鱼线相关逻辑
This commit is contained in:
@@ -1,173 +1,173 @@
|
||||
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;
|
||||
|
||||
/// <summary>
|
||||
/// 主线
|
||||
/// </summary>
|
||||
[SerializeField] private Rope fishingRope;
|
||||
|
||||
/// <summary>
|
||||
/// 浮漂和鱼钩线
|
||||
/// </summary>
|
||||
[SerializeField] private Rope bobberRope;
|
||||
|
||||
public LureController Lure;
|
||||
public BobberController Bobber;
|
||||
|
||||
public JointPinchController PinchController;
|
||||
|
||||
|
||||
public float LinelenghtDiferent;
|
||||
|
||||
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<Transform>(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<Transform>(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);
|
||||
}
|
||||
|
||||
|
||||
private void Update()
|
||||
{
|
||||
LinelenghtDiferent = GetLineDistance();
|
||||
|
||||
//非钓鱼状态
|
||||
Rod.PlayerItem.Tension = Mathf.Clamp(LinelenghtDiferent, 0f, 0.05f);
|
||||
}
|
||||
|
||||
#region Tension
|
||||
|
||||
private float GetLineDistance()
|
||||
{
|
||||
if (!Bobber.JointRb)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// return 0;
|
||||
|
||||
//第一个节点到竿稍的位置-第一段鱼线长度
|
||||
return Vector3.Distance(Bobber.transform.position, Bobber.JointRb.transform.position) -
|
||||
fishingRope.GetCurrentLength();
|
||||
}
|
||||
|
||||
public float GetTension(float weight)
|
||||
{
|
||||
return weight * GetLineDistance();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
// 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;
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 主线
|
||||
// /// </summary>
|
||||
// [SerializeField] private Rope fishingRope;
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 浮漂和鱼钩线
|
||||
// /// </summary>
|
||||
// [SerializeField] private Rope bobberRope;
|
||||
//
|
||||
// public LureController Lure;
|
||||
// public BobberController Bobber;
|
||||
//
|
||||
// public JointPinchController PinchController;
|
||||
//
|
||||
//
|
||||
// public float LinelenghtDiferent;
|
||||
//
|
||||
// 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<Transform>(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<Transform>(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);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// private void Update()
|
||||
// {
|
||||
// LinelenghtDiferent = GetLineDistance();
|
||||
//
|
||||
// //非钓鱼状态
|
||||
// Rod.PlayerItem.Tension = Mathf.Clamp(LinelenghtDiferent, 0f, 0.05f);
|
||||
// }
|
||||
//
|
||||
// #region Tension
|
||||
//
|
||||
// private float GetLineDistance()
|
||||
// {
|
||||
// if (!Bobber.JointRb)
|
||||
// {
|
||||
// return 0;
|
||||
// }
|
||||
//
|
||||
// // return 0;
|
||||
//
|
||||
// //第一个节点到竿稍的位置-第一段鱼线长度
|
||||
// return Vector3.Distance(Bobber.transform.position, Bobber.JointRb.transform.position) -
|
||||
// fishingRope.GetCurrentLength();
|
||||
// }
|
||||
//
|
||||
// public float GetTension(float weight)
|
||||
// {
|
||||
// return weight * GetLineDistance();
|
||||
// }
|
||||
//
|
||||
// #endregion
|
||||
// }
|
||||
// }
|
||||
Reference in New Issue
Block a user