http://wiki.ceeger.com/script/unityengine/classes/quaternion/quaternion.lookrotation 这个是Unity圣典的链接
首先, 处于3D空间中的每个对象, 实际上都有自己的局部坐标系, 而旋转某个对象时, 其局部坐标系也会跟着旋转。
所以, 如果可以描述某个对象的局部坐标系(每根轴的朝向), 就可以表示该对象的旋转程度。

Quaternion LookRotation(Vector3 forward, Vector3 upwards);
这个函数就是根据对局部坐标轴的描述, 构造对应的代表旋转程度的四元数。

forward:向前向量, 即z轴的朝向。但是仅仅有z轴的朝向是不够的, 因为对象还可能绕着z轴旋转, 所以需要upwards来约束。
upwards:向上向量, 注意, 此向量不需要是精确的y轴的朝向(即不需要与forward垂直), 但是, 此向量应该处于z轴、y轴平面上。

下面是一个测试例子,
public Transform cube; // 位于(0, 3, 0)的一个cube的transform
public Vector3 target; // cube的朝向目标, 初始值为(0, 3, 0)
void Update()
{
cube.rotation = Quaternion.LookRotation(target - cube.position, Vector3.up); // 注意, 此处Vector3.up并不一定与target - cube.position垂直
Debug.DrawLine(Vector3.zero, cube.forward, Color.blue); // 绘制每根轴
Debug.DrawLine(Vector3.zero, cube.right, Color.red);
Debug.DrawLine(Vector3.zero, cube.up, Color.green);
}
下边也是一个小案例:
看看注视旋转(Quaternion.LookRotation)的实现方法
编写怪物位置看到目标点,正确写法是Quaternion.lookRotation(Target.positon-Enemy.position)

  
  (Unity3D的坐标,相对这张图片X是横轴,Z是竖轴,下面暂时忽略Y轴)
  从世界坐标系[0.0]分别连接点Target,Enemy坐标点得到两个向量(0→Target,0→Enemy),绿色向量(Enemy→Target)代表怪物看到目标点。
  由向量加减可得,(0→Target)-(0-Enemy)=(Enemy-Target)。故Quaternion.LookRotation(Target.position-Enemy.position)。

下边是通过射线检测把一幅画或者一个材质图片赋给墙体或地板
if(IsOnclick)
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(ray.origin, ray.direction, Color.red);
Vector3 mouseposition = Camera.main.ScreenToWorldPoint(Input.mousePosition);//屏幕左边转世界坐标

        if (Physics.Raycast(ray, out hit, int.MaxValue)){//Debug.Log(hit.transform.name);if (hit.point.y>-0.6&&hit.point.y<0.6){Panel.transform.position = hit.point;}Debug.Log(Panel.transform.localPosition);if (hit.transform.tag == "1")Panel.transform.rotation = Quaternion.LookRotation(hit.transform.forward);else if(hit.transform.tag == "2")Panel.transform.rotation = Quaternion.LookRotation(hit.transform.right);if (Input.GetMouseButtonDown(0)){if (gameObject.tag.Equals("painting")){//Panel.transform.position = hit.point;Panel.transform.parent = hit.transform;IsOnclick = false;}else{IsOnclick = false;hit.transform.gameObject.GetComponent<MeshRenderer>().materials[0].mainTexture = Panel.GetComponent<MeshRenderer>().material.mainTexture;Destroy(Panel, 0);}}}}

UnityEngine.Quaternion.LookRotation的使用(感觉这个用着还不错做一个笔记)相关推荐

  1. 最近感觉公司的福利还不错

    最近越来越感觉公司的福利还不错,呵呵. 比如说有: 1. 8月份大部门组织去广西贺州旅游3天,上周末两个小部门组织去登梧桐山: 2. 上下班有免费班车接送,不用挤公交: 3. 公司协会活动不错,比如英 ...

  2. Unity3D_(API)Quaternion四元数中的Quaternion.LookRotation()

    四元数百度百科: 传送门 四元数官方文档: 传送门 欧拉旋转.四元数.矩阵旋转之间的差异: 传送门 四元数转换为欧拉角eulerAngles 官方文档: 传送门 欧拉角转换为四元数Euler 官方文档 ...

  3. 面向组件编程之Unity 11.Quaternion.LookRotation 转自lijing_hi

    此函数作用是生成一个四元数表示的三维朝向,然后可以直接把这个朝向赋给游戏对象来变更其朝向,也可以通过线性插值(Quaternion.Slerp 和 Quaternion.Lerp)来实现游戏对象从当前 ...

  4. Quaternion.LookRotation作用

    Quaternion LookRotation(Vector3 forward, Vector3 upwards); 其运算结果,forward是z轴的朝向的,upwards与forward叉乘的结果 ...

  5. 一位老程序员的心得分享,WEB前端菜鸟,感觉很迷茫,该怎么做?

    我们可以把学习路线比作游戏中的段位上分,在不同的分段都有自己的定位和要锻炼的事情: 1.青铜 - 从零开始小学生:怀着满腔的热血,看到了这一个行业的希望和未来,准备开始学习 Web 开发知识. a. ...

  6. 做一个软件工程师是什么感觉,工作过程中是否觉得开心?

    首先在这里谈一下做一个软件工程师的感觉: 1.开发完系统的成就感 当你完成了整个系统的开发,软件功能都完成的时候,你是很有成就感的,觉得终于完成的了感觉 2.系统稳定运行的成就感 当你开发完系统,经过 ...

  7. 37岁,感觉上班太累,可做这5个生意,年轻人看不上,但却挺赚钱

    我今年37岁,在一个私企工作. 每月拿到的工资,只有3000多块,扣除了社保这些,到手的也就2000多一点. 而且每天上班,真的是非常头疼. 37岁,感觉上班太累,可做这5个生意,年轻人看不上,但却挺 ...

  8. 把QQ群共享当做网盘用感觉还不错

    作者:iamlaosong 网上看到有人把QQ群的共享文件区当网盘用,试了一下,感觉还不错. 以前我是用QQ邮箱中的文件中转站当网盘使用的,准确的来说是当U盘使用.QQ邮箱中的记事本则用来记录一些备忘 ...

  9. CSS 如何做一个比较真实有感觉的阴影效果

    CSS 如何做一个比较真实有感觉的阴影效果 效果如图: 阴影:你需要了解的: box-shadow 这个样式可以同时添加多个阴影,以 , 间隔即可 本例中的阴影有两个,一个向左偏移一个向右偏移 box ...

  10. C++到底还能做什么? ----感觉说的还是很有道理的,共勉!

    C++到底还能做什么? 肖舸 嗯,这是一位朋友发到我邮箱里面的,很奇怪,发到了gmail邮箱,而不是我常用的hotmail邮箱哈.  我呢,试着回答一下,如果回答得不好,叫做肖某人学艺不精,回去重新学 ...

最新文章

  1. shell编程-正则表达式
  2. 2018-4-8使用兔子的例子对比说明遗传算法,局部搜索,禁忌搜索,模拟退火方法
  3. java swing 树_Java Swing JTree 树形
  4. Metaspliot 控制终端利用Samba漏洞渗透
  5. Zabbix实战-简易教程--订阅类
  6. 挖一挖那些让公司网站瘫痪的SQL“终结者”
  7. mappedBy reference an unknown target entity property解决方法
  8. 中国计算机报-用友华表成功秘密
  9. glassfish插件_Maven嵌入式Glassfish插件-未启动
  10. Oracle中的分析函数over()的详细解析
  11. 阿里云,腾讯云,保利威视,金山云,七牛云的视频云方案有什么不同啊?
  12. java中Scanner,Randon,ArrayList
  13. 由DRM引起的ORA-00481错误
  14. 开发一个 app 有多难?需要多少钱?
  15. 高项计算题1-成本管理(挣值分析(EVM分析)、成本预测)
  16. 微信公众号服务器交接,微信收款服务商助手交接管理员方法
  17. MySQL数据库程序设计(二)
  18. Android自定控件之动画总结(一)
  19. 2019年CS224N课程笔记-Lecture 5: Linguistic Structure: Dependency Parsing
  20. ue5虚拟纹理接缝融合(记录一下)

热门文章

  1. matlab双纵坐标的绘图命令_如何利用matlab的plotyy函数画双坐标图
  2. CANCELLED: io.grpc.Context was canclled without error
  3. 虫洞和诸多未解之谜有关联吗?
  4. java在线校验银行卡号_校验银行卡卡号
  5. c语言平 ac自动机,多模式串匹配之AC自动机算法(Aho-Corasick算法)简介与C语言程序实现源码参考...
  6. Android--刷机教程
  7. Travis CI(持续集成)
  8. 阻抗测试仪软件,特性阻抗测试仪 阻抗测试仪 Tektronix 泰克 TDR DSA8300
  9. 学车科目三考试视频讲解实地考场陪练车包最新经验分享必过攻略
  10. 统考计算机u盘禁用,四个轻松解除电脑禁用U盘的方法