| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> [Unity3D]关于Camera摄像头跟随物体移动的几种方法 -> 正文阅读 |
|
[游戏开发][Unity3D]关于Camera摄像头跟随物体移动的几种方法 |
?目录 序言 ? ? ? ?????????首先说一句,关于摄像头移动的方式有多种,每种都对应着一个情景。这篇文章就针对不同的情景展开摄像头用法的说明。 法一——摄像头与物体存在父子关系? ? ? ? 这是最简单的方法,只需要把摄像头拖拽到被观察物体的下面,使得被观察物体成为摄像头的父物体。 ????????由于父子物体间存在位矢与方向角的关系,且这种关系会由Unity3D引擎计算维持。所以此方法不需要任何代码,即可实现摄像头跟随物体移动。 ? ? 这种方式虽然简单,但弊端极大: ? ? ? ? 物体移动时,摄像头会抖动; ? ? ? ? 物体旋转时,摄像头会因为移动不平滑而导致玩家出现“晕3D”的效果; 所以就有了第二种办法。 法二——Lerp函数加上坐标变换? ? ? ? ?位置变换大家应该都知道。先看图:
? ?保持一定,即摄像机(A物体)与被观察者(B物体)简单位置关系保持不变。 简单点,就是: ?????????????????????????????????????????????????????? 现在,坐标变换的方式有了,在说说如何平滑移动。 Lerp函数(线性插值函数)? ? ? ??Lerp函数有许多类,但限于篇幅,只说要用的?Vector3.Lerp(From:V3 , To:V3 , T: float?) ? ? ? ? 这是两个向量之间的线性插值,按照数字t在From到To之间插值。 ? ? ? ? 如:T=0时,返回From; ? ? ? ? ? ? ? ? T=1时,返回To; ? ? ? ? ? ? ? ? T=0.5时,返回From与To的中间值。 接着是代码:
?使用场景? ? ? ? 适合摄像头不随着物体旋转而旋转的场景。 ? ? ? ? 如:Dota2,LOL,某荣耀等MOBA类游戏; ? ? ? ? ? ? ? ? 以及坦克大战、Mario诸类游戏。 法三——第一人称类游戏?? ? ? ? (说实话,这其实不算在相机跟随物体移动的范畴中。 它是由鼠标控制摄像头方向。出于仁慈,把它写了下来。) ? ? ? ??第一人称类游戏,说白了就是把摄像头当做玩家的眼睛。 ? ? ? ? 这个时候就要用到法一: ????????????????可以把摄像头作为物体的子物体,控制摄像头水平旋转只需要控制物体左右旋转。这样有个好处,就是不必考虑摄像头与物体本身的相对静止。 ? ? ? ? ? ? ? ? 摄像头只需要在竖直方向上移动,再通过之前提过的矢量变换,就可以咯。? 上代码:
? ? ? ? 这就是第一人称的情景: ? ? ? ? ? ? ? ? ? ? ? ? 如:CSGO、TF2等射击游戏? ? 法四——固定不动? ? ? ??没啥好说的,就是放在那里不动。 ? ? ? ? 情景有: ? ? ? ? ? ? ? ? ? ? ? ? 打飞机、皇室战争等固定摄像头游戏。
? ?结束? ? ? ? 这篇文章讲了摄像头随着物体移动的几种方法。 ? ? ? ? 谢谢读者,我们一起进步。 ? ? ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 6:21:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |