Files
2026-06-06 21:01:16 +02:00

43 lines
981 B
C#

using UnityEngine;
using Unity.Cinemachine;
public class DownwardCamera : CinemachineExtension
{
private float minY;
private bool isInitialized = false;
protected override void PostPipelineStageCallback(
CinemachineVirtualCameraBase vcam,
CinemachineCore.Stage stage,
ref CameraState state,
float deltaTime)
{
if (stage == CinemachineCore.Stage.Body)
{
Vector3 pos = state.RawPosition;
if (!isInitialized)
{
minY = pos.y;
isInitialized = true;
}
if (pos.y < minY)
{
minY = pos.y;
}
// If it tries to move UP (higher Y), lock it to the lowest point we've reached
else
{
pos.y = minY;
}
state.RawPosition = pos;
}
}
public void ResetCamera()
{
isInitialized = false;
}
}