Bezi回来了

This commit is contained in:
SoulliesOfficial
2026-04-28 15:46:32 -04:00
parent 7379583165
commit 0902ca8a9e
56 changed files with 3285 additions and 3803 deletions

View File

@@ -39,26 +39,19 @@ namespace Cielonos.MainGame.Effects.Feedback
/// 将给定的本地空间向量根据当前设置转换到世界空间。
/// 如果两个方向都开启,角色方向优先。
/// </summary>
/// <param name="localAmplitude">本地空间的振幅向量</param>
/// <param name="standardScreenVector">在摄像机和角色相同朝向时,屏幕空间的振幅向量</param>
/// <param name="ownerTransform">角色 Transform可能为 null</param>
/// <returns>经方向变换后的振幅向量</returns>
public Vector3 TransformAmplitude(Vector3 localAmplitude, Transform ownerTransform)
public Vector3 TransformAmplitude(Vector3 standardScreenVector, Transform ownerTransform)
{
if (affectedByCharacterDirection && ownerTransform != null)
{
return ownerTransform.TransformDirection(localAmplitude);
}
Camera mainCamera = MainGameManager.Instance?.player?.viewSc?.playerCamera;
if (mainCamera == null) return standardScreenVector;
if (affectedByCameraDirection)
{
Camera mainCamera = MainGameManager.Instance.player.viewSc.playerCamera;
if (mainCamera != null)
{
return mainCamera.transform.TransformDirection(localAmplitude);
}
}
Quaternion characterRotation = ownerTransform?.rotation ?? Quaternion.identity;
Quaternion cameraRotation = mainCamera.transform.rotation;
return localAmplitude;
Quaternion deltaRotation = Quaternion.Inverse(cameraRotation) * characterRotation;
return deltaRotation * standardScreenVector;
}
}
}

View File

@@ -16,7 +16,7 @@ namespace Cielonos.MainGame.Effects.Feedback
[TitleGroup("FOV设置")]
[LabelText("FOV曲线")]
public FloatCurveChannel fovCurve = FloatCurveChannel.CreateDefault(remapMax: 10f);
public FloatCurveChannel fovCurve = FloatCurveChannel.CreateDefault();
protected override void TriggerEvent(FeedbackContext context)
{
@@ -30,11 +30,6 @@ namespace Cielonos.MainGame.Effects.Feedback
public override bool Validate(out string error)
{
if (!fovCurve.active)
{
error = "FOV curve is not enabled.";
return false;
}
error = null;
return true;
}

View File

@@ -44,7 +44,7 @@ namespace Cielonos.MainGame.Effects.Feedback
{
Vector3 finalAmplitude = directionSettings.TransformAmplitude(amplitude, context.owner);
float intensityMultiplier = ComputeAttenuation(context);
CameraRotationShakeEvent.Trigger(context, intensityCurve, finalAmplitude * intensityMultiplier);
CameraPositionShakeEvent.Trigger(context, intensityCurve, finalAmplitude * intensityMultiplier);
}
protected override void StopEvent(FeedbackContext context)
@@ -66,11 +66,6 @@ namespace Cielonos.MainGame.Effects.Feedback
public override bool Validate(out string error)
{
if (!intensityCurve.active)
{
error = "Intensity curve is not enabled.";
return false;
}
error = null;
return true;
}

View File

@@ -17,8 +17,7 @@ namespace Cielonos.MainGame.Effects.Feedback
public Vector3 amplitude;
[LabelText("X轴曲线")]
public FloatCurveChannel intensityCurve = FloatCurveChannel.CreateDefault(remapMax: 5f);
public FloatCurveChannel intensityCurve = FloatCurveChannel.CreateDefault();
public CameraDirectionSettings directionSettings = new CameraDirectionSettings();
@@ -40,8 +39,8 @@ namespace Cielonos.MainGame.Effects.Feedback
protected override void TriggerEvent(FeedbackContext context)
{
Vector3 finalAmplitude = directionSettings.TransformAmplitude(amplitude, context.owner);
float intensityMultiplier = ComputeAttenuation(context);
CameraRotationShakeEvent.Trigger(context, intensityCurve, finalAmplitude * intensityMultiplier);
float attenuation = ComputeAttenuation(context);
CameraRotationShakeEvent.Trigger(context, intensityCurve, finalAmplitude * attenuation);
}
protected override void StopEvent(FeedbackContext context)