Files
back_cantanBuilding/Assets/Scripts/SPO/FishingBehaviorConf.cs
2026-05-26 16:15:54 +08:00

197 lines
10 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FishingBehaviorConf : ScriptableObject
{
[Header("FISHING ROD ANGLE SETTINGS")]
public float RodRotationOffset = -3f;
public float zRotationRodParam = 3.35f;
public float zRotationRodOffset = 0f;
public float yRotationRodParam = 0.5f;
public float yRotationRodOffset = 5;
public float xPosRodParam = 1.65f;
public float xPosRodOffset = 0f;
[Header("FISHING HAND ANGLE SETTINGS")]
public float xRotationHandParam = 1f;
public float yRotationHandParam = 1f;
public float zRotationHandParam = 1f;
[Header("FISHING CAMERA ANGLE SETTINGS")]
public float zAngelParam = 0.02f;//基于和鱼的角度乘以这个参数得到对应z轴旋转的参数
public float zAngelMax = 2f;//z旋转的最大值
[Header("FISHING DRAWING SETTINGS")]
public float struggleTime = 10.0f;
public float force = 1.5f; //drawing基础力量
public float zeroPointForce = 1.5f; //drawing力量增加值
[Range(0, 1)] public float clickAddForce = 0.35f; //点按增加力
public float clickAddTmer = 0.25f;
//[Range(0, 1)] public float holdMaxAddForce = 0.35f; //长按增加力波动值
//[Range(0, 1)] public float holdMinAddForce = 0.2f; //长按增加力波动值
public float holdTimer = 1f;
public float cameraDrawingOffset = 93f; //相机原点角度,从右往前转的角度
public float flashDrawingRefluxAngel = 93f; //鱼回流中轴角度---废弃的参数
[Header("FISHING ENTER MAP SETTINGS")]
public float rodEnterMapDelay = 2f;//进入新地图后,鱼竿和手延迟出现的时间
[Header("FISHING IDLE SETTINGS")]
public float rodSpidleTime = 5f; //idle01概率变成idle02
public float rodSpidle = 0.1f; //idle01概率变成idle02
[Header("FISHING REELING SETTINGS")]
//_reeling 固定速度
public float reelingSpeed = 1.5f; //拉鱼速度
public float comebackTimeUpperLimit = 1.85f; //拉鱼回来最短时间
public AnimationCurve reelCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); //速度曲线
public float reelingToPullLength = 12.5f;//拉鱼到距离鱼竿Root固定距离就进入pulling
[Header("FISHING PULLING SETTINGS")]
public float fishingRodDisappearsPulling = 0.1f; //普通pulling状态下钓竿消失时间
public float fishingRodDisappearsPullingSp = 1.5f; //特殊刺杀pulling状态下从进入开始钓竿消失时间
public float lineHeight = 8f; //鱼竿消失后,鱼线移动到的高度
public float lineMoveToTopTime = 0.1f; //鱼竿消失后,鱼线移动到正上方的时间
public float lineHoldTopTime = 1f; //鱼线移动到正上方后,保持的时间
public float lineMoveToMidTime = 0.1f; //鱼竿在正上方保持一段时间后,移动到屏幕中央的时间
public float jumpScaleTime = 0.5f; //跳跃时间
public float jumpDuration = 1.2f; //跳跃时间
public float timeStartScale = 0.5f; //开始慢镜头时间
public float timeEndScale = 1f; //结束慢镜头时间
public AnimationCurve timeScaleCurve = AnimationCurve.Linear(0, 1, 1, 1); //时间缩放曲线
//CaughtFish延时时间
public float caughtFishDelayTime = 0.5f; //CaughtFish延时时间
public float caughtFishHideLineTime = 2.075f; //CaughtFish延时时间
//结算后延迟时间
public float rodAppearDelay = 0f; //鱼竿和手重新出现的延迟时间必须为0
public float cameraResetDelay = 0f; //相机回到Preparing01状态的时间
[Header("FISHING THROWING SETTINGS")]
public float audioDelay = 1.5f; //音效延迟时间
//飞到水面时间
public float flyToWaterTime = 1f; //飞到水面时间
//向前飞行的DOTween AnimationCurve
public AnimationCurve flyForwardCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); //向前飞行的DOTween AnimationCurve
//向下飞行的DOTween AnimationCurve
public AnimationCurve flyDownCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); //向下飞行的DOTween AnimationCurve
//鱼自由控制时间
public float fishFreeControlTime = 1.5f; //鱼饵运动受到代码控制的延迟时间,在此之前是靠动画控制
public float fishApproachingZRatio = 0.33f; //鱼饵朝着初始曲线收敛的z轴距离百分比
[Header("FISHING WAITING SETTINGS")]
//飞行距离
public float flyDistance = 70f; //飞行距离
public float waitingDistance = 20f; //回拉距离
public float waitingMinTime = 2.5f; //最小等待时间
public float waitingMaxTime = 4.5f; //最大等待时间
public float waitingPlay = 0.5f; //拉杆涟漪等待时间
[Header("FISHING PIERCING SETTINGS")]
//刺鱼
public float damageProtectionTime = 0.5f;
public float[] piercingTime = new float[3] { 0.2f, 0.25f, 0.4f };
public AnimationCurve piercingTimeScaleCurve = AnimationCurve.Linear(0, 1, 1, 1); //普通刺鱼时间缩放曲线
public float[] PiercingAnimExitTime = new float[3] { 0.15f, 0.166f, 0.2f };
[Header("FISHING PIERCINGSP SETTINGS")]
//刺鱼直接刺死
public float piercingFishmMoveZ = 25f;
public AnimationCurve piercingSpTimeScaleCurve = AnimationCurve.Linear(0, 1, 1, 1); //刺鱼直接刺死时间缩放曲线
[Header("FISH ACTION SETTINGS")]
public AnimationCurve speedHpCurve = AnimationCurve.Linear(0, 1, 1, 1); //速度曲线
public float turnTime = 0.3f;//鱼转向时间
[Header("FISH CRUISE SETTINGS")]
//大鱼常规游弋配置
public float bigFishSwimSpeed = 10f; //大鱼游弋速度
public float bigFishSwimAppearInterval = 25f; //大鱼游弋间隔
[Header("FISH EAT BY UI")]
public int shockCount = 2; //总共有几种吃鱼动画表现
public float bigFishEatSpeed = 40f; //大鱼吃鱼提前速度
public float bigFishEatTime = 1; //大鱼追击时间
public float UIEatExitTime = 2;//退出时间
public float UIEatEndTime = 1;
[Header("FISH EAT BY ANIM")]
//大鱼行动延时时间
public float eatFishActionDelay = 0.666f; //大鱼行动延时时间
//切换鱼线
public float eatenFishVanishedDelay = 1f; //切换鱼线
//鱼竿出现Rod Apear Delay
public float rodApearDelay = 1.5f; //鱼竿出现Rod Apear Delay
public float rodDrawingForceMaxDelay = 1.833f; //鱼竿拉满Rod Apear Delay
public float fishSwimmingDelay = 2f; //鱼游动Delay
public float fishSwimmingToMapTime = 1f; //鱼游动时间
public float aniEatExitTime = 2;//退出时间
public float aniEatEndTime = 0.2f;
public float darknessTimeDelay = 1.75f;//天气变化
public float[] fishbosseatingTime = new float[3] { 1.99f, 2.216f, 1.99f };
public float timeEatStartScale = 0.5f; //开始慢镜头时间
public float timeEatEndScale = 2f; //结束慢镜头时间
public float timeEatMinScale = 0.2f; //时间缩放最小值
public AnimationCurve timeEatScaleCurve = AnimationCurve.Linear(0, 1, 1, 1); //时间缩放曲线
[Header("FISH COMBO SETTINGS")]
public float maxComboTipFadeTime = 0.1f; //fxJumpOutDelay
public float maxComboFxFadeTime = 0.1f; //fxJumpInDelay
[Header("FISH FAIL SETTINGS")]
public float rodFailResetTime = 1f; //失败后,鱼竿在这段时间内将位置和旋转复位,并在结束后隐藏鱼线
[Header("CAMERA AFTER PULLING SETTINGS")]
//pulling结束后camera状态机结束交由程序控制
public float blurDelay = 1;//景深开启延迟
public float blurDistanceZ = 4;//景深距离
[Header("SUPPLYDROP AIRPLANE SETTINGS")]
//空投,飞机
public float supplyDropPlaneFlyTime = 3.5f;//飞机的飞行时间
public Vector3 supplyDropPlaneStartPos = new Vector3(0, 70, 50);//飞机的起始坐标
public Vector3 supplyDropPlaneEndPos = new Vector3(0, 70, 1000);//飞机的最终坐标
public float[] supplyDropPlaneStartX = new float[2] { 0f, 20f };//飞机的起始x轴在这2个值之间随机
public float[] supplyDropPlaneEndX = new float[2] { 25f, 40f };//飞机的结束x轴在这2个值之间随机
[Header("SUPPLYDROP FLY SETTINGS")]
//空投,飞行阶段
public float supplyDropTitleDelay = 0;//横幅出现延迟
public float supplyDropCameraMoveDelay = 1;//相机推进的延迟
public float supplyDropAppearDelay = 0.5f; //空投包出现延迟
public Vector3 supplyDropPackFlyStartRand;//空投包出现时的随机范围,为相对目标点的相对位置
public Vector3 supplyDropFlyTargetPos;//空投包的目标点位
public float[] supplyDropFlyTargetRotationYRand = new float[2] { -25f, -15f };//空投包的目标点位y轴随机旋转范围注意和飞机方向相同
public float supplyDropFlyTime = 3;//空投包的飞行时间
public AnimationCurve supplyDropFlyCurve = AnimationCurve.Linear(0, 1, 1, 1); //空投包的飞行位置曲线
[Header("SUPPLYDROP DROP SETTINGS")]
//空投,落水阶段
public float supplyDropFxSmokeDelay = 0;//浓烟特效延迟
public float supplyDropPackIdleDelay = 0.5f; //状态机置为Idle的延迟其实是落水动画的时间
public float supplyDropClaimDelay = 0.5f;//领取按钮的出现延迟
[Header("SUPPLYDROP OPEN SETTINGS")]
//空投,打开阶段
public float supplyDropOpenDelay = 0.3f;//空投包播放开光特效延迟
public float supplyDropPackVanishDelay = 2.5f;//隐藏空投包延迟
public float supplyDropContainerDelay = 0.25f;//内容物延迟多久出现
public Vector3 supplyDropContainerFirstFlyRelativePos;//内容物飞到相对位置
public float supplyDropContainerFirstFlyTime = 0.5f;//内容物第一段飞行时间会飞到相对Content点的位置
public AnimationCurve supplyDropContainerFirstFlyCurve = AnimationCurve.Linear(0, 1, 1, 1); //内容物的第一段飞行曲线
public Vector3 supplyDropContainerFlyPos;//内容物屏幕正中央的世界坐标
public float supplyDropContainerFlyScale = 1.5f;//内容物飞行到位置后的缩放
public float supplyDropContainerFlyTime = 0.5f;//内容物飞行到指定位置的时间
public float supplyDropContainerFxDelay = 1f;//内容物飞行到指定位置后,延迟这么久播放特效
public float supplyDropVanishDelay = 2f;//内容物延迟从show到消失
public float supplyDropCameraBackDelay = 0.33f;//内容物延迟这么久之后镜头执行回归idle逻辑
public AnimationCurve supplyDropContainerFlyCurve = AnimationCurve.Linear(0, 1, 1, 1); //内容物的飞行位置曲线
}