首先获取相机对象:

        //camera = GetComponent<Camera>();  //脚本在相机对象上//GameObject.FindWithTag("MainCamera") //根据Tag查找//主相机camera = Camera.main;

方式一:用标志位控制近远两种状态切换,一次拉近拉远

    private bool isFar = true;private void Zoom1(){if (Input.GetMouseButtonDown(1)){//修改缩放等级isFar = !isFar;if (isFar){//拉远 20  --》 60camera.fieldOfView = 60;}else{//拉近 60 --》 20camera.fieldOfView = 20;}}}

方式二:逐渐拉近拉远

    private void Zoom2(){if (Input.GetMouseButtonDown(1)){//修改缩放等级isFar = !isFar; } if (isFar){//拉远 20  --》 60if (camera.fieldOfView < 60)camera.fieldOfView += 2;}else{//拉近 60 --》 20if (camera.fieldOfView > 20)camera.fieldOfView -= 2;}}

方式三:速度动态变化,开始快靠近目标时慢

    private void Zoom3(){if (Input.GetMouseButtonDown(1)){//修改缩放等级isFar = !isFar;}if (isFar){//拉远 20  --》 60        Lerp(起点、终点、比例)camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, 60, 0.1f);//Vector3.Lerp//Quaternion.Lerp//Color.Lerp}else{//拉近 60 --》 20camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, 20, 0.1f);}}

方式四:用数组控制多个等级的缩放

    //60    50  40  30    20 定义缩放等级数组public float[] zoomLevels;private int currentLevel;private void Zoom(){if (Input.GetMouseButtonDown(1)){//修改缩放等级//currentLevel++;//currentLevel = currentLevel < zoomLevels.Length - 1 ? currentLevel + 1 : 0;currentLevel = (currentLevel + 1) % zoomLevels.Length;}camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, zoomLevels[currentLevel], 0.1f); }

unity实现镜头拉近拉远的方式相关推荐

  1. unity鼠标控制镜头旋转_unity3D鼠标滚轮来实现镜头拉近拉远及视角旋转

    镜头拉近拉远的代码(无限拉远拉近) 代码如下: if( Input.GetAxis("Mouse ScrollWheel") != 0 ) { this.gameObject.tr ...

  2. unity3D实现镜头拉近拉远及视角旋转

    镜头拉近拉远的代码(无限拉远拉近) 代码如下: if( Input.GetAxis("Mouse ScrollWheel") != 0 ) { this.gameObject.tr ...

  3. Unity 镜头拉近拉远 和旋转视角

    自己使用的是 Unity2018和VS2019版. 向主相机添加FollowPlayer类. 下面呈现代码 这里有小Bug, 拉近拉远和旋转视角无法同时使用,后续会进行更改完善 public clas ...

  4. Unity的摄像机拉近拉远和旋转脚本实现

    摄像机是Unity3d里面一定要用到的.所以熟悉摄像机的使用也是能掌握unity3d的基础. 这里详细介绍一个摄像机脚本,脚本的功能类似与魔兽争霸的鼠标滚轮拉近拉远以及按住右键移动鼠标旋转视野. 涉及 ...

  5. unity实现摄像机拉近拉远视野

    近期做项目时遇到需要实现摄像机视野拉近拉远的效果 用鼠标滚轮实现摄像机视野拉近拉远 代码如下: private float mouseX; private float mouseY; void Upd ...

  6. unity实现吃鸡摄像头,自动拉近拉远视距,不被遮挡物遮盖人物效果

    实现类似摄像头,遇到遮挡物自动拉近拉远视距,不被遮挡物遮盖人物的效果 效果图 一.简介 二.基本层级 三.核心脚本 四.寒暄 效果图 传入的时gif图,帧率有所降低,不过能看清楚 这是旋转时的效果 这 ...

  7. 航拍拉近拉远镜头_什么是远摄镜头?

    航拍拉近拉远镜头 Telephoto lenses can be incredibly useful, but how is it different from other lenses, and w ...

  8. iOS 扫描二维码实现手势拉近拉远镜头

    在做扫码需求,往往会有放大镜头需求. 苹果提供了AVCaptureConnection中,videoScaleAndCropFactor:缩放裁剪系数,使用该属性,可以实现拉近拉远镜头.再结合手势UI ...

  9. AVCapture中实现拉近拉远镜头

    自己用avcapture实现自定制相机,系统相机是可以拉近拉远镜头的,网上搜寻了半天始终没有发现,刚才又翻看了半天的api接口,终于找到了,原来他藏在AVCaptureConnection中,vide ...

最新文章

  1. 被拒稿、被否定:读博五年间都没有发 paper 是一种怎样的体验?
  2. 收藏 | 服务器和存储技术知识
  3. 【首轮官宣】中国肠道大会姊妹盛会,GUT 2022正式启航!
  4. 来电科技:基于Flink+Hologres的实时数仓演进之路
  5. linux-4.20.11内核消息通知链
  6. std::nothrow
  7. python treeview控件使用详解_python绘图工具turtle库的使用详解
  8. 通过adb和python直接传输Android截图到电脑(windows适用)
  9. java 变量存放在哪_Java全局变量存放在哪里?
  10. Android超声波识别技术,超声波指纹识别or光学指纹识别?屏下指纹识别技术大比拼-传感技术-与非网...
  11. 关于swiftUI和UIKit混用
  12. 查看oracle关闭重启,oracle 数据库关闭重启
  13. LintCode 138.子数组之和
  14. TwinCAT3 控制器PLC之间EAP通讯1-主机给多个从机发送
  15. 不定方程非负整数解个数
  16. 测试开发工作者日记【终焉】:再见~ 小猪
  17. 2020-12-07 PMP 群内练习题 - 光环
  18. 【目标检测】yolo系列yolo x学习笔记(2021年旷视)
  19. pySpark 运行时出现 Permission denied: (权限问题)
  20. 个子矮s弯如何看点打方向图解_s弯怎么看点打方向盘 走s弯最简单的方法教程揭秘...

热门文章

  1. Python星星代码
  2. 低效的CMMI周例会
  3. matlab显示神经网络结构图,[转载]bp神经网络结构设计和在MATLAB中仿真方法
  4. Linux篇.配置IP地址与主机名的映射关系
  5. 基于Hypermesh、Nastran、Abaqus、LS_Dyna和Femfat的电池包仿真分析
  6. 用 visio 2013 让插入的图片倾斜
  7. ubuntu安装I219-V网卡驱动 连接有线网络
  8. 初学PostgreSQL数据库遇到的问题 - 使用psql命令连接不上已建好的数据库
  9. ATF原生篇(十八):Components-安全分区管理器(MM)(Secure Partition Manager (MM))(上)
  10. 汉字大英雄-赚钱类小游戏脚本系列(含源码)