不管是在游戏(如超级玛丽游戏)中,还是在工艺仿真中,还是在手机app开发中,相机都是必不可少的模块,本篇文章重点讲解一下相机背后的原理


下面这幅图引入两个角色,第一就是我们需要控制的相机,第二就是相机所盯的目标点



下面来看看一个简单的相机程序:



上面的代码做一个简单的总结吧:


从上图可知,相机的旋转和拉近拉远都是靠红框圈住的那一行代码来完成的,下面就分析一下这行代码:


首先我讲一下高中数学中常讲的方向向量,三句话对向量做个总结:


向量是矢量,有大小和方向
向量是一个有方向的线段
向量的计算遵循这个公式 : 向量=箭头-箭尾



对上图中代码做一下简单的代码调整,如下:

xiangji.transform.position = mubiao.transform.position - xiangji.transform.forward * distance;

mubiao没动,forward方向向量变化,很容易推导出相机的position肯定在变化


FR:海涛高软(QQ技术交流群:386476712)

Unity 相机的移动旋转以及拉近拉远的原理相关推荐

  1. Unity 实现简单的相机跟随和鼠标滚轮拉近拉远视野

    1.脚本挂载在Main Camera 上 ,相机跟随的实现主要是让相机的位置和玩家的位置的差值始终保持不变. 2.实现鼠标滚轮拉近拉远视野,要先测试一下自己鼠标滚轮前滑后滑的正负值,每个鼠标不一定相同 ...

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

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

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

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

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

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

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

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

  6. Unity 相机围绕目标旋转、缩放功能实现

    Unity 相机围绕目标旋转.缩放功能实现 //************************************************相机围绕物体旋转.相机缩放*************** ...

  7. unity实现镜头拉近拉远的方式

    首先获取相机对象: //camera = GetComponent<Camera>(); //脚本在相机对象上//GameObject.FindWithTag("MainCame ...

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

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

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

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

最新文章

  1. Qt读取ini配置文件
  2. 搭建好看的静态博客(使用Hexo进行搭建)
  3. c语言rand随机输出字母,菜鸟求助,写一个随机输出26个英文字母的程序
  4. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
  5. display详细说明
  6. centos7安装samba
  7. drill 数据库查询方式简单说明
  8. 人机对弈黑白棋游戏用Python tkinter的Canvas实现图形界面
  9. 基于springboot旅游系统
  10. UDS(统一诊断服务)的理解——0x19服务
  11. C++实验02(02)华氏温度转换为摄氏温度
  12. Google Kick Start 2019 C轮 题解
  13. 信息学奥赛一本通【21CSPS提高组】和【21NOIP提高组】题解
  14. 什么农村大学生大多混得比较差-第一性原理分析
  15. 基于SSM实现的简易员工管理系统(基于阿里云的网站上线篇)
  16. linux dd if提示是目录,Linux dd 命令详解
  17. idea设置黑色经典样式Darcula
  18. 为什么字节跳动的年薪50万的软件测试工程师遍地都是?
  19. 钢琴软件c语言源代码,C语言钢琴程序代码.doc
  20. JPA、Hibernate和Spring Data JPA区别

热门文章

  1. mysql数据库asc_mysql数据库
  2. 高考倒计时100天,用python看看高三党
  3. kubeadm安装的k8s集群证书有效期过期解决方案
  4. ZigBee智能节水灌溉系统
  5. 计算机色颜色有几种,电脑显示器怎么选?10、8、6bit不同色深都有哪些区别?...
  6. Raptor软件与学习资料
  7. 第八届山东省赛题 I Parity check 【找规律】
  8. 微信公众平人数多服务器会崩溃吗,微信公众号平台推新功能 再也不怕文章崩溃...
  9. CentOS7设置GRUB系统内核开机选单
  10. MFC 108问题