This commit is contained in:
2025-05-14 16:14:32 +08:00
parent 543b38d930
commit 9e4fef3f1e
16 changed files with 358 additions and 27 deletions

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using DG.Tweening;
using NBC;
using NBF;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
@@ -40,10 +41,10 @@ public partial class FPlayer : MonoBehaviour
public FPlayerUseGear Gears;
public LineRenderer LineRenderer;
public LureTrajectorySimulator LureTrajectorySimulator;
public Transform Light;
private void Awake()
{
PlayerAnimatorCtrl = gameObject.GetComponent<PlayerAnimator>();
@@ -58,7 +59,6 @@ public partial class FPlayer : MonoBehaviour
Gears = gameObject.AddComponent<FPlayerUseGear>();
}
LineRenderer = gameObject.GetComponent<LineRenderer>();
LureTrajectorySimulator = gameObject.AddComponent<LureTrajectorySimulator>();
PlayerAnimatorCtrl.Player = this;
@@ -156,17 +156,44 @@ public partial class FPlayer : MonoBehaviour
Gears?.Update();
}
if (Input.GetKeyDown(KeyCode.F))
SyncLight();
}
private void SyncLight()
{
if (Light)
{
var points = LureTrajectorySimulator.Test(BaseCamera.Main.transform);
// FishingCastInput exampleInput = FishingCastInput.Default();
// points = LureTrajectorySimulator.CalculateTrajectory(exampleInput);
Light.localRotation = BaseCamera.Main.transform.localRotation;
if (Light.gameObject.activeSelf != Data.openLight)
{
Light.gameObject.SetActive(Data.openLight);
}
}
}
private Tween _fovTween; // 存储当前的Tween动画方便中断
private float _zoomDuration = 0.2f; // 缩放动画时间
/// <summary>
/// 切换望远镜效果(打开/关闭)
/// </summary>
/// <param name="isZoomIn">true=打开望远镜false=关闭望远镜</param>
public void ToggleTelescope()
{
// 如果已经有动画在运行,先停止
_fovTween?.Kill();
// 根据传入的参数决定目标FOV
float targetFOV = Data.openTelescope ? GameDef.ZoomedFOV : GameDef.NormalFOV;
// 使用DoTween平滑过渡FOV
_fovTween = DOTween.To(
() => BaseCamera.Main.fieldOfView, // 获取当前FOV
x => BaseCamera.Main.fieldOfView = x, // 设置新FOV
targetFOV, // 目标FOV
_zoomDuration // 动画时间
).SetEase(Ease.InOutQuad); // 使用缓动函数让动画更平滑
}
public bool CanChangeGear()
{