好久没写博客了

事情的起因是我想要实现一种摄像机,要求摄像机能跟随锁定角色移动的同时还能绕角色旋转旋转。类似神界原罪2锁定角色后的摄像机。
先放上最后的实现代码

 // 要跟随的目标public Transform target;// 摄像机与目标的偏移public Vector3 offset = new Vector3(0, 5, 10);// 上一帧的目标位置public Vector3 targetPrePos = new Vector3();// 当前帧的目标位置public Vector3 targetCurrentPos = new Vector3();void Start(){// 摄像机的初始位置 this.transform.position = target.position + offset;// 将上一帧目标位置设为初始值targetPrePos = target.position;}void Update(){// 设置当前目标位置targetCurrentPos = target.position;// translate根据物体上一帧到当前帧的位移移动摄像机,而且基于世界坐标系this.transform.Translate(target.position - targetPrePos, Space.World);// 将当前帧的位置赋值给上一帧位置的变量,供下一帧使用targetPrePos = target.position;}

当初实现的时候,我想的跟随是这样的

    void Update(){this.transform.position = target.position + offset;}

然后遇到了什么问题呢,由于我还要能旋转摄像机,而直接在每一帧将位置粗暴的改为target.position + offset会导致摄像机被固定在target.position + offset这一个位置,无法旋转。所以不能直接修改transform.position,而是需要在transform.position的基础上加减Vector3。
我想到了translate函数,貌似就是干这个的。
但是很快我又遇到了问题,摄像机并不和我想得一样跟着目标走,而是乱跑。但是看似乱跑似乎又有点规律。
一开始我以为是target.position - targetPrePos顺序错了要反过来。但是反过来摄像机的运动也不对。
然后我才想到会不会是因为摄像机的运动是基于本地的,而他又要一直盯着目标看,所以本地坐标不行。世界坐标就是我们想要的。网上查了查translate是基于那种坐标运作的,发现translate可以用参数进行坐标轴设置。

类神界原罪2的摄像机控制——Unity随手记(2020.10.29)相关推荐

  1. Unity摄像机控制

    Unity摄像机控制: 控制摄像机移动,旋转,缩放,跳跃:有视野限制,且摄像机高度越高运动幅度越大. 视野缩放:通过向前滚动鼠标滑轮可拉近视野,向后滚动鼠标滑轮可拉远视野. 视野移动:按住鼠标左键不放 ...

  2. UnityStandardAsset工程、源码分析_4_赛车游戏[玩家控制]_摄像机控制

    上一章地址:UnityStandardAsset工程.源码分析_3_赛车游戏[玩家控制]_特效.声效 经过前几章的分析,我们已经大致地了解了车辆控制相关的脚本.现在还有最后一个与玩家体验息息相关的部分 ...

  3. 《神界原罪2》实用玩法技巧汇总

    1:毒药桶和武器放在合成栏可以给武器附加毒伤害,初期可以加一点点输出,不过注意亡灵怪多的话就不要附魔了,会给亡灵回血. 2:降雨术非常好用,法师可以给自己降雨形成水元素亲和,也可以用来灭火,更可以用来 ...

  4. 代码 控制unity 暂停 编辑器_Unity3D 报错解决方案及常用功能收集

    1.在Dictionary迭代器进行修改: var _key = index2factionDic.Keys.GetEnumerator(); stringitem; while(_key.MoveN ...

  5. 神界:原罪 2 for Mac(角色扮演游戏)

    神界原罪2 mac游戏画面,音效,配音都是非常精心制作的,游戏分为四种难度,适合各种等级玩家!原先有不少朋友因为神界:原罪 2 for Mac是英文版所以放弃了这款神作游戏,但本次未来软件园为您带来了 ...

  6. 枪械切换(1)——Unity随手记(2021.2.16)

    文章目录 今天实现的内容: 脚本结构的优化 切换武器逻辑的初步实现 切换武器的GameObject实现 BUG以及缺陷: 值得注意的: 今天实现的内容: 脚本结构的优化 为接下来的切换枪械做铺垫,脚本 ...

  7. 黑魂复刻游戏的玩家输入模块——Unity随手记(2021.3.14)

    文章目录 前言 今天实现的内容: 按键封装 获取输入及输入信号优化 输入的渐变 模块的软开关 处理输入 BUG以及缺陷: 值得注意的: 前言 好久不见,在接下来的Unity随手记里,我会学着B站上的视 ...

  8. 笔记整理2----Java语言基础(二)06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础

    06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础 第06天 java基础语法 今日内容介绍  Eclipse断点调试  基 ...

  9. 记账类APP竞品分析-挖财与随手记

    注:本文更新中. 一.概览 1.  产品名称及版本 l  挖财11.2.0.0 免费版(2016/9/6发布) l  随手记10.2.8免费版(2016/8/22发布) 2.  设备信息 设备型号:i ...

最新文章

  1. c语言对10求余不为7,【PTA | 基础编程题目集】7-12 两个数的简单计算器 (10分)
  2. Runtime.exec 调用OS命令特例
  3. java从静态代理到动态代理的理解
  4. 直接插入排序比较次数_插入排序(C++)
  5. 微软Azure AspNetCore微服务实战第2期(内附PPT下载)
  6. Docker容器内不能联网的6种解决方案
  7. angularjs 学习笔记(一) -----JSONP跨站访问
  8. 串口通信----串口接收框接收不到数据
  9. 阿里巴巴集团 CTO 约你聊聊这些事
  10. python程序设计 清华大学出版社 pdf下载-清华大学出版社-图书详情-《Python程序设计教程》...
  11. jdk版本和java版本一样吗_jdk版本查看,以及java -version 和JAVA_HOME不一致问题
  12. veu 中 nprogress 的 使用方法
  13. python导入excel加入折线图_excel表格中怎么设计炫酷折线图
  14. 手机浏览器脚本知乎直接看不用下载app
  15. Python实现王者农药自动刷金币
  16. 从函数型数据到光滑函数
  17. 百度统计的JS脚本原理分析 2013年文章转载
  18. 42所双一流高校,都是如何处理学术不端行为的?
  19. Lammps安装教程 windows版
  20. HDU - 3594 Cactus (强连通缩点+STL)

热门文章

  1. 登录华为账户显示无法连接服务器,App提示连接不到服务器
  2. vue中gif加载一次_Vue加载优化,速度提高一倍。
  3. 用Java编写有读取和保存文本功能的记事本程序
  4. java图形界面之JPanel面板与布局管理
  5. Apple Watch如何进行真机调试及问题汇总
  6. 如何运行python
  7. 计算机专业就业方向分析
  8. oracle生成首字母,ORACLE获取汉字拼音首字母的函数
  9. 解决前端设计window高分屏缩放导致截图工具量出来的尺寸和实际设计尺寸不一致的问题
  10. git全局配置用户名和密码_Git配置全局账号密码避免每次拉取、提交输入账号密码...