如何在 Unity C# 中限制相机移动

How to make limited camera movement in Unity C#

我正在使用 Unity 制作 FNAF 粉丝游戏,我需要有限的相机移动,如本视频所示。我一直在努力解决这个问题,但没有找到任何教程或任何答案。如果你能 link 一个脚本,我将非常感激!

https://vimeo.com/710535461

将此代码附加到 camera,您可以通过在检查器中设置两个角度来限制相机移动。请记住,此代码限制 localEulerAngles 值并且始终必须将相机旋转设置为零,要调整其旋转,请将相机作为 empty object 的子级放置,然后旋转父级。

public class LimitedCamera : MonoBehaviour
{
    public float LimitAngleX = 10f;
    public float LimitAngleY = 10f;

    private float AngleX;
    private float AngleY;
    public void Update()
    {
        var angles = transform.localEulerAngles;

        var xAxis = Input.GetAxis("Mouse X");
        var yAxis = Input.GetAxis("Mouse Y");
        
        AngleX = Mathf.Clamp (AngleX-yAxis, -LimitAngleX, LimitAngleY);
        AngleY = Mathf.Clamp (AngleY+xAxis, -LimitAngleY, LimitAngleY);

        angles.x = AngleX;
        angles.y = AngleY;
        
        transform.localRotation = Quaternion.Euler (angles);

        transform.localEulerAngles = angles;
    }
}