Files
daluandou/Assets/Script/CameraFollow.cs
T
2026-09-10 20:49:28 +08:00

38 lines
1.2 KiB
C#

using UnityEngine;
public class CameraFollow : MonoBehaviour
{
public Transform target; // 角色的Transform组件
public Vector3 offset; // 摄像机相对于角色的偏移量
public float smoothSpeed = 0.125f; // 摄像机移动的平滑速度
[Header("边界限制")]
public bool enableBounds = true; // 是否启用边界限制
public float minX = -6f; // X轴最小边界
public float maxX = 6f; // X轴最大边界
public float minZ = -30f; // Z轴最小边界(摄像机位置,不是主角位置)
public float maxZ = 91f; // Z轴最大边界(摄像机位置,不是主角位置)
private void LateUpdate()
{
if (target == null)
{
return;
}
Vector3 desiredPosition = target.position + offset;
// 边界限制:摄像机停在边界处,主角可以继续移动
if (enableBounds)
{
desiredPosition.x = Mathf.Clamp(desiredPosition.x, minX, maxX);
desiredPosition.z = Mathf.Clamp(desiredPosition.z, minZ, maxZ);
}
transform.position = Vector3.Lerp(
transform.position,
desiredPosition,
smoothSpeed);
}
}