Unity3D基础5:摄像机与Game视图

 

一、Game视图

游戏(Game)视图:游戏的预览(运行)窗口。

游戏视图为场景中的摄像机视角

  • 当点击“播放”按钮后,视图会自动切换到游戏视图进行预览;再一次的点击“播放”按钮,就可以退出游戏的运行状态
  • 游戏在运行状态时,做的任何操作都不会被保留

 

二、基本组件:摄像机

摄像机(Camera)就相当于我们的眼睛,用于观察我们的游戏世界

摄像机的观察区间叫做“视锥体”,所有在“视锥体”范围内的物体,都可以被看到

 

GameObject→Align With View(快捷键:Ctrl+Shift+F)可以对齐视图

即让摄像机对齐到当前视图,使Scene与Game中的观看角度和位置一致

摄像机基本属性:

  1. Clear Flags:外围背景效果;默认为天空盒(Skybox)
  2. Projection:投影模式;Perspective为透视模式,近大远小,一般3D游戏使用,Orthographic为正交模式,2D游戏使用
  3. Clipping Planes:切割面;Near表示近平面,摄像机能看到的最近的东西,Far表示远平面,摄像机最远能看到的东西

 

### Unity 中实现摄像机瞄准镜缩放效果的方法 #### 使用摄像机视野调整实现缩放效果 一种常见的方法是通过修改摄像机的视场角(Field of View, FOV)来创建缩放效果。这种方法简单易行,适用于大多数情况。 ```csharp public class ScopeZoom : MonoBehaviour { public float normalFOV = 60f; public float zoomedFOV = 20f; private Camera cam; void Start() { cam = GetComponent<Camera>(); cam.fieldOfView = normalFOV; // 设置初始视角 } void Update() { if (Input.GetButtonDown("Fire1")) // 当按下鼠标左键时触发缩放 StartCoroutine(ChangeFOV(zoomedFOV)); if (Input.GetButtonUp("Fire1")) StartCoroutine(ChangeFOV(normalFOV)); } IEnumerator ChangeFOV(float targetFOV) { while(Mathf.Abs(cam.fieldOfView - targetFOV) > 0.1f) { cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, targetFOV, Time.deltaTime * 5); yield return null; } cam.fieldOfView = targetFOV; } } ``` 此脚本允许玩家点击并按住鼠标按钮进入瞄准模式,松开则恢复默认视角[^2]。 #### 利用Shader实现瞄具放大效果 对于更高级的效果,可以采用自定义着色器的方式处理屏幕中心区域图像拉伸变形,从而模拟光学镜头特有的渐晕效应和其他视觉特性。这种方式能提供更加真实的观感体验,但开发成本较高且性能消耗较大。 #### Render Texture 模拟变焦效果 另一种方案是使用渲染纹理(RenderTexture),即先将场景的一部分单独渲染到一张贴图上,再将其显示于屏幕上特定区域内形成局部放大的画面。该技术适合用于制作HUD上的小窗口预览功能或是第三人称射击游戏中的肩射视角切换。 以上三种方法各有优劣,在实际项目中可根据具体需求灵活选用最恰当的一种或组合多种手段达成最佳表现力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值