Files
ft/Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/LockHorizontalPositionExtension.cs
2026-06-29 21:18:33 +08:00

33 lines
893 B
C#

using UnityEngine;
using Cinemachine;
/// <summary>
/// Cinemachine Extension: 垂直跟随,水平锁定
/// </summary>
[ExecuteAlways]
[SaveDuringPlay]
[AddComponentMenu("")]
public class LockHorizontalPositionExtension : CinemachineExtension
{
[Tooltip("锁定的 X 坐标")]
public float LockedX = 0f;
// [Tooltip("锁定的 Z 坐标")]
// public float LockedZ = -10f;
protected override void PostPipelineStageCallback(
CinemachineVirtualCameraBase vcam,
CinemachineCore.Stage stage,
ref CameraState state,
float deltaTime)
{
// 在 Body 阶段后修改位置
if (stage == CinemachineCore.Stage.Body)
{
Vector3 pos = state.FinalPosition;
pos.x = LockedX;
// pos.z = LockedZ;
state.PositionCorrection += pos - state.FinalPosition;
}
}
}