Unity使用FreeLookCamera实现可自由移动的第三人称镜头_代码生病了-程序员宅基地

技术标签: 游戏研发相关(Unity3D)  游戏  cinemachine  游戏开发  FreeLook  

学习参考:b站Up主M_Studio(麦扣老师)的3DRPG系列教程

衔接上一篇文章《Unity使用虚拟相机实现人物跟踪移动》,最后实现的镜头效果的对比图如下:

设置虚拟相机之前,相机是固定的。可以看到人物移动距离相机越来越远。
在这里插入图片描述
在使用虚拟相机后虽然实现了相机跟随移动,但是在人物移动的过程中只能看到前方固定的视角。
在这里插入图片描述

使用cinemachine的FreeLookCamera实现自由移动镜头

1.新建FreeLook相机

在原有的Demo上进行更改,关闭原有的虚拟相机,新建一个自由的相机,可以实现常见的第三人称视角效果。

创建好了以后,在自由相机的inspector窗口中设置跟随点

可以看到场景中多了三个红色的圈,这三个圈是层的关系不在同一平面,表示摄像机可以在这三个参考圈内自由的旋转和切换摄像机的角度。

这条连接的红线表示摄像机可以进行上下角度的切换。

可以通过设置每一层红圈的范围,大小高矮来调整摄像机的可移动范围,可以发现三个红圈形成了一个球体。在这个球体的范围内,摄像机可以自由的移动。

2.相机移动旋转参数设置

自由相机默认控制移动的设置如下图:

y纵轴摄像机移动使用的是鼠标上下移动,x横轴的摄像机移动使用的是鼠标左右移动。也就是鼠标左右移动可以控制镜头的左右旋转,鼠标上下挪动可以控制镜头的上下即远近移动。
在这里插入图片描述
这样的滑动并不适合游戏,修改它的控制设置使用鼠标的滚轮进行摄像机上下的调节Mouse ScrollWheel
左右的移动使用键盘的AD键位Horizontal控制x的值。并且取消勾选反向Invert

3.修改相机角度和视角

修改三个圈的大小来修改视角,可以观察上面的场景视角,人物距离镜头过近,影响游戏体验。

这是我的相机参数和在场景中展示的效果

为了方便调试可以勾选相机设置的第三栏Save During Play选项,它是指在play的过程中保存数据。这样可以在游戏测试的时候一边调试一边保存。

4.效果图展示

如图所示效果,FreeLookCamera实现了可自由移动的第三人称镜头
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wankcn/article/details/115291702

智能推荐

ST编辑器注册码_weixin_34234721的博客-程序员宅基地

Sublime Text 3 3126 注册码第一个测试通过—– BEGIN LICENSE —–Michael BarnesSingle User LicenseEA7E-8213858A353C41 872A0D5C DF9B2950 AFF6F667C458EA6D 8EA3C286 98D1D650 131A97ABAA919AEC EF20E143 B361B1E7 4...

Expected property shorthand报错_落叶Noble的博客-程序员宅基地

Expected property shorthand报错该问题是语法检查报错,解决方式:{ name: name, title: title, value: value}// 改写为{ name, title, value}

剑指Offer----青蛙跳台阶 / LeetCode ---- 70. 爬楼梯 (java实现,递归/迭代)_ziqiiii的博客-程序员宅基地

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)思路:(采用数学的归纳法)1。上1级台阶,1种方法;2。上2级台阶,2种方法;(分别是11,2)3。上3级台阶, (a。第一次跳1级台阶,剩下2级台阶,参考"上2级台阶"有几种条法; b。第一次跳2级台阶,剩下一级参考"上1级台...

对volatile的认知_橘子味的阳光的博客-程序员宅基地

volatile是jvm提供的轻量级同步机制保证了不同线程对变量操作的内存可见性强制线程每次读取时从主内存取值禁止指令重排序编译器可能对输入指令进行执行重排序,各个语句执行的先后顺序不一致,但会保证执行结果一直, 但是忽略的数据的依赖性通过在指令间添加内存屏障,强制刷新cpu缓存数据,并且禁止指令重排序, store的屏障指令进行写操作, 使用copy命令刷新到主内存,load屏障指令从主内存中读取共享变量不具备原子性...

PHP+MySql的网络验证源码开源纯代码可二次开发_「已注销」的博客-程序员宅基地_网络验证源码

PHP+MySql的网络验证源码开源纯代码可二次开发:99415656994962582靓仔担当有决心

《考研数据结构》(树篇,含思路解答)_chaing_haifeng的博客-程序员宅基地

144. 二叉树的前序遍历void Preorder(struct TreeNode* root, int* result, int* size){ if(root == NULL) return; result[(*size)++] = root -> val; Preorder(root -> left, result, size); Preorder(root -> right, result, size);}int* preo

随便推点

小白该如何系统性的学好前端开发?2020前端学习路线图总结_千锋广州小蚊子的博客-程序员宅基地

Web前端开发由网页制作演变而来,随着Web2.0的发展,网页不再只是承载单一的文字和图片,各种丰富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。经过了市场的沉淀,很多前端们开始无所适从,以前简单的技能已经无法适用前端技术的发展,新技术新框架又不断涌现,前端开发市场仍然有着大量的需求。我们知道前端开发应用是很广泛的,这些公司都有前端开发岗位(当然这只是一部分):并且薪资也不低。除了互联网公司,传统公司想要连接互联网,同样离不开前端工程师。而随着H5

linux查看帮助文档的命令,Linux如何使用查看一个命令的帮助文档呢?_weixin_39701735的博客-程序员宅基地

摘要:下文讲述Linux操作系统中查看命令的帮助文档的方法分享,如下所示;实现思路:使用 --help命令即可查看命令自带的帮助文档信息例:查看ls命令的帮助信息[[email protected] test]# ls --helpUsage: ls [OPTION]... [FILE]...List information about the FILEs (the current directory ...

C动态库的扩展_weixin_30455067的博客-程序员宅基地

案例背景:一般的企业信息系统都有成熟的框架,可以由C语言编写,也可以由C++编写。软件的框架一般不会发生变化,能自由地集成第三方的产品;案例需要:在socket通信中,完成数据加密功能。有n个第三方厂商的加密产品供你选择,如何实现动态库和第三方产品的解耦和? 要求能够:1.能够支持多个第三方产品的入围;2.企业的信息系统框架不能轻易发生改变。提醒:C+...

html 4.0网站兼容性,浏览器兼容性_weixin_39933724的博客-程序员宅基地

前端开发遇到的浏览器兼容性问题产生这个问题的主要原因是不同浏览器的内核不同,对网页的解析结果就产生了差异。解决浏览器兼容性问题,主要从三方面考虑:html, css, js.html部分1. 调用CDN的html5shiv。html5shiv.js可以实现让IE低版本浏览器识别并支持html5标签。2. img标签在图片不存在的情况下,各浏览器的解析不一致。在chrome下显示的是一张破损的图片,...

正则校验端口号:1-65535_人美路子嘢的博客-程序员宅基地_正则验证端口号

/^([1-9](\d{0,3}))$|^([1-5]\d{4})$|^(6[0-4]\d{3})$|^(65[0-4]\d{2})$|^(655[0-2]\d)$|^(6553[0-5])$/

城市定位html,城市定位页.html_诗和远方越远越脏的博客-程序员宅基地

城市定位页$axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif'; };$axure.utils.getOtherPath = function() { return 'resources/Other.html'; };$axure.utils.getReloadPat...

推荐文章

热门文章

相关标签