位置: 编程技术 - 正文

Unity之-----背后视角摄像机(unity hover)

编辑:rootadmin

推荐整理分享Unity之-----背后视角摄像机(unity hover),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity background,unity beijing,unity b,unity后期,unity后期,unity后期,unity后期,unity background,内容如对您有帮助,希望把文章链接给更多的朋友!

相信每一个接触过Unity的人,应该都认识Unity引擎自带的那个水管工,也一定知道那个小人模型上挂着3个脚本控制着小人的一切,今天我就来说一下关于Unity背后视角摄像机的实现,当然方法并不唯一,这只是笔者自己学习中总结的一些方法和经验而已。

  我们先拖一个第三视角的小人到屏幕上,如果没有就先导入包吧。把小人重名为Person,并删除它本身自带的三个脚本。我们将自己动手来写脚本控制摄像机。其实背后视角摄像机的原理很简单,只须一直保持着摄像机位于角色的背后,并且保持一定的距离和角度即可。下面我们就来动手写一下。

首先新建一个脚本命名为CameraController(名字和语言随意,这里我使用C#),新建一个private Camera camera = null来保存对场景中主摄像机的引用,并在Start()方法中初始化它 camera = Camera.mainCamera; 现在我们有了对主摄像机的引用就可以操控它了:

第一步,先把摄像机拉倒角色的位置 camera.transform.position = gameObject.transform.position; 因为我们的脚本将挂在角色模型上,所以直接用gameObject就可以获得角色引用。 第二步,将摄像机转向角色所面向的方向,并将镜头向下偏转一定角度

Unity之-----背后视角摄像机(unity hover)

这里我们要用到Quaternion.LookRotation方法来设置物体的旋转角度。传说中的四元数,你可以把这个LookRotation方法理解成是对坐标系的一种旋转,他一共有两个参数都是Vector3类型的,其中第一个参数是用来指名旋转后Z轴正向所指的方向,而第二个参数则是当z轴指定之后Y轴被旋转到的方向,默认是Vector3.up也就是向上,这里要注意,第二个参数其实只能是一个参考作用,因为Unity中只有笛卡尔坐标系,也就是坐标轴之间必然相互垂直,如果你给定的两个参数互相不垂直,那么我们要将y轴沿与z轴平行和垂直分解,并去与z轴垂直的方向作为y轴正方向。另外说明在一般情况下这两个参数都是对世界坐标而言。

我们先通过Vector3 personForward = gameObject.transform.TransformDirection(Vector3.forward);来获得角色的正前方在世界坐标上的方向向量。这样通过Quaternion.LookRotation(personForward)就可以获得将摄像机旋转到角色正前方向方位的相应四元数了。

先别急,我们还要将相机的角度再向下便宜些,这样效果更好,我们同样可以通过Quaternion.LookRotation来达到这个效果,上面我说过一般时候LookRotation的两个参数都是世界坐标的,但是当我们紧接着将另一个Quaternion.LookRotation乘在后面的话,那后一个LookRotation的两个参数的坐标是在前一个LookRotation旋转完毕后所新城的新坐标系中来说的。这点要注意,所以我们可以构造一个斜向下的方向向量Vector3 v1 = Vector3.forward &#; Vector3.down.这里我们就取度了,如果想构造其他角度只要在两个单位向量前乘以相应的系数就可以了。

下面我们完成的把这个过程写下来: Vector3 personForward = gameObject.transform.TransformDirection(Vector3.forward); Vector3 v1 = Vector3.forward &#; Vector3.down; camera.transform.rotation = Quaternion.LookRotation(personForward) * Quaternion.LookRotation(v1); 这样子我们就达到了上面的要求,如果你不理解的话,也不要在意,可能是我讲解的不太好,我更想说的是这个Quaternion的应用真不是一两个例子就能说明的,你应该好好的研究,自己动手试试才能感觉出来,只看API是没有什么用的。 第三步:将相机向后移动并且向上移动一段距离,因为之前我们的相机一直是和角色位置重合的这样子是不行的 我们先通过camera.transform.Translate(Vector3.back*2);来将相机向后移动一些,移动多远自己看着来,我们再将摄像机向上移动一些这时候注意了,Translate函数默认是以物体的自身坐标系为基准来移动的,因为我们的相机现在是斜向下的所以他的正上方并不是世界坐标的正上方,不过我们然人可以使用Translate函数,只是这次再用的时候就要将他的第二个参数Space.World写上了,即camera.transform.Translate(Vector3.up,Space.World); 还要记住将上面3步的内容要写到脚本的Update函数中,没帧我们都要调整摄像机的位置,这样才能一直保证一直跟在玩家后面。

下面是完成的脚本代码:

到此,一个最基本的背后视角摄像机完成了,当然我们还没有让角色动起来也就没法观看移动中摄像机跟踪角色的效果了,不过角色移动对于大家来说应该不难,我会在后面的系列文章中继续讲解Unity的一些知识。

Unity 3D中的阴影设置 在Unity3D中,经常需要用到光照阴影,即DirectionalLight的Shadow,Shadow分为HardShadow和SoftShadow。区别是SoftShadow的阴影边缘比较平滑,接近真实,但是性能消耗

unity之NPC对话的实现 昨天说了要实现NPC的对话,经过多次测试,虽然还不是完美,但是还是可以看哒哈哈,看一看效果吧!现在就来说一说如何实现的吧!//定义NPC对话数据

利用Unity来实现插件开发 1、建一个IPlugin接口,每个插件都要继承这个接口。2、建一个插件管理类,利用Unity来管理各个插件。usingSystem.Reflection;usingMicrosoft.Practices.Unity;publicinterf

标签: unity hover

本文链接地址:https://www.jiuchutong.com/biancheng/372976.html 转载请保留说明!

上一篇:Unity中的淡入淡出效果(unity画面效果润色)

下一篇:Unity 3D中的阴影设置(unity2d 阴影)

  • 什么情况要缴印花税
  • 递延所得税计算表模板
  • 本月无销售额,但是有进项,需要认证吗
  • 员工自己全额承担社保可以在个税申报吗
  • 吸收合并一般需要多久
  • 个人经营所得税减免税优惠政策
  • 已经作废的发票还需要申报吗
  • 取暖费摊销期限是多少年
  • 三方协议缴款账户状态错
  • 契税和印花税的计税依据是一致吗
  • 对赌协议补偿款计入哪个科目
  • 没收到发票可以做成本吗
  • 现金日记账年结图片
  • 服务行业营业成本包括财务费用和管理费用吗
  • 采购运输管理系统
  • 幼儿园幼儿买花的通知
  • 发票丢失证明怎么开具
  • 本月计错多发的工资可以不交个税
  • 地税三方协议是什么意思
  • 行程单和发票的区别 报销
  • 车辆处置入账价值包括哪些
  • 出口已使用过的设备退税吗
  • 报销款冲抵其他应收款怎么做账?
  • 股权转让收到钱会计分录
  • 企业销售收入含不含税
  • 水费差额征税税率
  • 工会筹备金如何补报
  • 关联公司代付款帐怎么做
  • 药品入库和出库必须执行什么制度
  • 修改hosts文件的软件
  • Win10 21H1 Build 19043.1200(KB5005101)预览版更新了哪些内容(附更新日志)
  • 房屋装修费如何入账
  • 税收返还会计核算
  • 违反发票管理的处罚
  • 进口应税消费品所支付的金额不包括
  • 向客户收费
  • yolov3模型训练
  • 什么是加计扣除政策
  • yii框架入门
  • 出口抵减内销产品应纳税额怎么结转
  • 企业增值税发票税率是多少
  • 发票项目要求
  • phpcms使用教程
  • 高效刷题app
  • 2022年最新装修风格
  • 经典帝国cms生成器下载
  • 存货的成本包括哪几项
  • 财务报表的组成主要包括
  • 专家评审费属于咨询费吗
  • 非货币性资产交换以公允价值为基础进行计量
  • 二手车经销管理办法
  • 在租赁公司贷款买的车绿本上会有我的名字吗
  • 利润分配科目是所有者权益科目吗
  • 生产的产品不合格,追究时公司已经注销
  • 有没有月初发放当月工资的
  • 跨年度的项目如何做
  • 自产的产品作为福利增值税
  • 不含税价格怎么算公式(1+3%)
  • 新手会计做账怎么做账
  • 账簿设计原则的主要内容
  • 出租人融资租赁的判断标准
  • u盘怎么安装驱动程序
  • mac的替换在哪里
  • 红帽企业版更新了吗
  • 在linux系统中有一个重要的概念
  • Win7安全模式怎么切换到正常模式
  • win10系统注册名修改
  • win7电脑flash安装教程
  • 谷歌批量下载插件
  • css expression 隔行换色
  • 用jquery制作网页
  • Android: netd中NetlinkManager的简单介绍
  • python pil gif
  • JavaScript定义变量
  • jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
  • 使用jquery操作dom
  • 什么是居民企业和非居民企业
  • 企业所得税减按90%计入收入总额
  • 南通买房首付规定
  • 财税公众号名称大全
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设