鱼竿弯曲
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using NBC.Asset;
|
||||
@@ -40,8 +41,14 @@ namespace NBF
|
||||
Asset = GetComponent<RodAsset>();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
Asset.CCDIK.enabled = true;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
BendControl();
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha0))
|
||||
// {
|
||||
// SetLineLength(lineLength);
|
||||
@@ -68,7 +75,8 @@ namespace NBF
|
||||
Line.Lure.SetJointDistance(PlayerItem.LineLength);
|
||||
if (PlayerItem.StretchRope)
|
||||
{
|
||||
Line.SetTargetLength(PlayerItem.Tension > 0f ? 0f : PlayerItem.LineLength);
|
||||
// Line.SetTargetLength(PlayerItem.Tension > 0f ? 0f : PlayerItem.LineLength);
|
||||
Line.SetTargetLength(PlayerItem.LineLength);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -78,7 +86,8 @@ namespace NBF
|
||||
Line.Bobber.SetJointDistance(PlayerItem.LineLength - PlayerItem.FloatLength);
|
||||
if (PlayerItem.StretchRope)
|
||||
{
|
||||
Line.SetTargetLength(PlayerItem.Tension > 0f ? 0f : PlayerItem.LineLength - PlayerItem.FloatLength);
|
||||
// Line.SetTargetLength(PlayerItem.Tension > 0f ? 0f : PlayerItem.LineLength - PlayerItem.FloatLength);
|
||||
Line.SetTargetLength(PlayerItem.LineLength - PlayerItem.FloatLength);
|
||||
Line.SetLureLength(PlayerItem.FloatLength);
|
||||
}
|
||||
}
|
||||
@@ -115,8 +124,6 @@ namespace NBF
|
||||
|
||||
var obj = new GameObject($"rod_{ConfigId}");
|
||||
obj.transform.SetParent(SceneSettings.Instance.GearNode);
|
||||
// obj.transform.SetParent(player.transform);
|
||||
// obj.transform.localPosition = Vector3.zero;
|
||||
obj.transform.position = playerViewUnity.transform.position;
|
||||
obj.transform.rotation = playerViewUnity.transform.rotation;
|
||||
obj.transform.localScale = Vector3.one;
|
||||
@@ -124,8 +131,6 @@ namespace NBF
|
||||
|
||||
var parent = GearRoot;
|
||||
|
||||
// List<ItemInfo> children = RoleModel.Instance.GetBindItems(itemInfo.Id);
|
||||
|
||||
CreateFishingHandler();
|
||||
await FTask.WaitFrame(playerView.Scene); //等待1帧
|
||||
// children.Sort();
|
||||
@@ -301,6 +306,46 @@ namespace NBF
|
||||
rings = list.ToArray();
|
||||
}
|
||||
|
||||
|
||||
#region 鱼竿弯曲
|
||||
|
||||
private List<float> previousWeights = Enumerable.Repeat(0f, 10).ToList();
|
||||
private float bendSmooth = 1f;
|
||||
|
||||
private void BendControl()
|
||||
{
|
||||
// Vector3 vector = (FishEntity.CurrentFishInFight
|
||||
// ? FishEntity.CurrentFishInFight.transform.position
|
||||
// : fishingLine.currentLineHandler.LineConnector_1.transform.position);
|
||||
|
||||
var ccdik = Asset.CCDIK;
|
||||
|
||||
Vector3 vector = Line.Bobber.transform.position;
|
||||
// float num = Vector3.Distance(ccdik.solver.bones.Last().transform.position, vector);
|
||||
float num2 = 0.05f;
|
||||
|
||||
float num6 = 0.3f;
|
||||
// if (isThrowing)
|
||||
// {
|
||||
// num6 = 0.1f;
|
||||
// }
|
||||
// else if (!FishEntity.CurrentFishInFight)
|
||||
// {
|
||||
// num6 = 0.2f;
|
||||
// }
|
||||
|
||||
float target = num2 * num6;
|
||||
float item = Mathf.MoveTowards(ccdik.solver.IKPositionWeight, target, Time.deltaTime * bendSmooth);
|
||||
previousWeights.RemoveAt(0);
|
||||
previousWeights.Add(item);
|
||||
float num7 = previousWeights.Average();
|
||||
|
||||
ccdik.solver.SetIKPosition(vector);
|
||||
ccdik.solver.SetIKPositionWeight(num7);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void Test()
|
||||
{
|
||||
// var root = Player.ModelAsset.RodRoot;
|
||||
|
||||
Reference in New Issue
Block a user