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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)