Unity内置的LookAt函数可以让摄像机或者其他物体一直看向于指定的一个位置点,但是这个操作是在一帧的时间内完成的,我说需要实现的效果是在一个指定时间内,看向那个物体,显然LookAt是无法实现的,4个重载中没有指定时间这样的重载,所以就依据LookAt 的实现原理,自行规定时间,旋转过程使用Lerp进行处理。

大致的思路是:

  1. 先确定目标点和当前位置的向量值
  2. 根据所求出来的向量值使用四元数的LookRotate()函数求得一个四元数值,这个值就是需要旋转的总量
  3. 之后使用lerp函数进行旋转,增加时间限制

我这里是使用了eulerAngle进行旋转的,四元数也是一样可以实现的。

示例代码如下(我使用了DoTween做其他操作,看核心块即可):

 /// <summary>/// 到位置之后看向物品/// </summary>/// <returns></returns>protected void LookAtTarget(){Vector3 dir;if (SceneModel.ComputerItem!=null){dir = SceneModel.ComputerItem.position - SceneModel._Camera.transform.position;Quaternion rot = Quaternion.LookRotation(dir);SceneModel._Camera.DORotate(new Vector3(rot.eulerAngles.x, rot.eulerAngles.y, rot.eulerAngles.z),1.5f,RotateMode.Fast);}}

Over!

Unity实现类似于LookAt 的功能相关推荐

  1. Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能

    Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能 前言 我在之前的博客里介绍过关于VideoPlayer的简单使用流程,之前一直想研究下videoPlayer中的使用进度条控制视频 ...

  2. [转]JQuery ui 实现类似于confirm的功能

    本文转自:http://www.cnblogs.com/JerryWang1991/archive/2011/08/04/2127503.html 今天在改进参加一个全国比赛的项目作品时,发现使用了大 ...

  3. 实现一个简单的类似于手电筒的功能@[电灯泡]

    实现一个简单的类似于手电筒的功能@[电灯泡] 第一步代码 首先实现两个图片可以互相切换的功能 链接: http://localhost:63342/work/Student.html?_ijt=1gt ...

  4. Unity简单实现图片墙功能

    Unity简单实现图片墙功能 前言 在做之前公司的项目中,我做过很多实现照片墙效果的功能.其中我觉得我做的效果比较好而且比较有难度的就是雀巢项目中的那个仿照apple watch拖拽效果实现的那个照片 ...

  5. arcpy中拆分获取FeatureClass中各类型地物要素到单独的shp中,类似于splitShp的功能(地理国情监测)

    arcpy中拆分获取FeatureClass中各类型地物要素到单独的shp中,类似于splitShp的功能:(地理国情监测) for str_Val in set(shp_JH_list): #循环该 ...

  6. Unity实现OCR文字识别功能

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 表格制作excel教程h ...

  7. 【Unity实现背包拖拽功能 】

    Unity实现背包拖拽功能 可以实现背包拖拽交换位置.合成 等一系列功能的实现 using System; using System.Collections; using System.Collect ...

  8. python实现浏览器ctrl+f页面搜索功能_JS 页面内容搜索,类似于 Ctrl+F功能的实现代码...

    JS 页面内容搜索,类似于 Ctrl+F功能的实现代码 更新时间:2007年08月13日 19:58:11   作者: WinWebMail 帮  助 查看:[大字 中字 小字] 登录系统时的增强安全 ...

  9. unity如何实现砍树功能?以及如何性能优化?

    Unity中实现砍树功能 要在Unity中实现砍树功能,您需要遵循以下几个步骤: 创建一个脚本来处理砍树功能.您可以通过在项目窗口中右键单击并选择Create > C# Script来创建一个新 ...

最新文章

  1. 批量下载_Zip压缩包的方式
  2. VBS基础篇 - wscript 对象
  3. java设计模式之外观模式(门面模式)
  4. Python实现ORM
  5. .QT-制作最强电压电阻表盘,可以自定义阴影效果,渐变颜色,图标,文字标签等-附带demo程序
  6. 数据结构之线段树Ⅴ——(李超线段树)Robot,Product Sum,Building Bridges,Jump mission
  7. 使用Pandas 1.1.0进行稳健的2个DataFrames验证
  8. Kubernetes 1.20 报错:“open /run/flannel/subnet.env: no such file or directory“
  9. opengl java_android graphic(20)—java层OpenGL相关类
  10. vue开发:顶端粘滞效果的页面
  11. USB 协议分析之 HID 设备(转)
  12. python 如何判断字典存在key
  13. 如何使用MATLAB coder将MATLAB代码转换成C/C++语言(详细图文教程)
  14. ELK系列之Mac安装kibana报错License information could not be obtained from Elasticsearch due to [invalid_inde
  15. python大全-iwanna
  16. java整型数组转置输出,Java实现数组转置
  17. (按色谱固定相基质分)液相色谱柱的分类
  18. NBUT1225 NEW RDSP MODE I(快速幂,规律):
  19. linux read使用方法,Linux命令: read的使用
  20. vsto clickonce 发布setup.exe失败

热门文章

  1. 笔记本电脑系统迁移0xc0000225
  2. 面试了一个37 岁的程序员 有一些感悟
  3. html页面如何访问控制限制,网页访问控制
  4. 网易Airtest跨平台的UI自动化测试框架
  5. root 红米note5_怎么开启红米Note 5的ROOT权限
  6. [电脑组装]记录第一次组装电脑+win10激活
  7. 发现一个有意思的奇葩极客网站
  8. 玩转Elasticsearch routing功能
  9. css 有关边框的属性_边框样式(CSS属性)
  10. 微信开发者工具提交代码到gitee?