Camera

基础概念

Unity 场景在三维空间中表示游戏对象。由于观察者的屏幕是二维屏幕,Unity 需要捕捉视图并将其“平面化”以进行显示。它使用摄像机来实现这一点。在 Unity 中,您可以通过将一个 Camera 组件添加到游戏对象来创建摄像机。

常用属性


Culling Mask
通过选择层来渲染指定层的对象,Unity中每个对象都被分配了一个层,默认为“Default”层

Projection:透视和正交摄像机
正交:

透视:

现实世界中的摄像机(实际相当于人眼)在观察外界事物时,物体距离视点越远,看起来越小,这就是透视摄像机的效果,显示的对象不随距离变远而缩小的摄像机称为正交摄像机,在透视和正交模式下观察场景称为摄像机投影。

  • FOV Axis:视野轴
    Vertical:垂直轴,设为该项后,调整FieldOfView会改变相机上下开合角度
    Horizontal:水平轴,设为该项后,调整FieldOfView会改变相机左右开合角度
  • Field Of View: 视角范围(相机的视野拉伸),视角越大,视野越大,同时焦距越短

Clipping Planes: 裁剪平面
Near和Far指定了其裁剪的区域范围,若不处于这个范围的不被渲染,可以节省计算量,设置多少合适,看需求。

Occlusion Culling:遮挡剔除的开关
这个选项勾选有助于提升游戏性能,比如不在摄像机范围内的物体,将不会被渲染出来

实现一个简易的摄像机跟随

	public Transform target; // 要跟随的目标对象
    public Vector3 offset = new Vector3(0, 10, -10); // 摄像机相对于目标的偏移量
    public float smoothSpeed = 0.125f; // 平滑移动的速度

    void LateUpdate()
    {
        if (target != null)
        {
            Vector3 desiredPosition = target.position + offset;
            Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
            transform.position = smoothedPosition;
            // 使摄像机始终看向目标
            transform.LookAt(target);
        }
    }
posted @ 2024-10-18 14:17  请明月  阅读(55)  评论(0编辑  收藏  举报