当前位置:   article > 正文

Unity随记(一) LookAt和LookRotation的使用_unity lookat

unity lookat

Unity中的transform.LookAt()与Quaternion.LookRotation()从名字上看都是有注视目标的意思,这里简单记录下这两个方法的使用,先上动态图(图中四个单位,其中只有大的红色Boss是通过键盘控制位移和旋转,其他三个小单位则是通过对这两个方法的使用达到图中的效果的):

transform.LookAt()

注意图中的小蓝,以及那根蓝色的线,可以发现小蓝的朝向(transform.forward)是始终指向boss的。

  1. void Update()
  2. {
  3. transform.LookAt(Boss.transform);
  4. Debug.DrawLine(transform.position, Boss.transform.position, Color.blue);
  5. }

Quaternion.LookRotation()

图中的小小红和小绿都是采用的LookRotation(),先看小小红,他的朝向始终和boss的朝向保持一致,所以可以通过这个办法来控制追随者的转向。

  1. void Update()
  2. {
  3. //保持和Boss同一个朝向
  4. transform.rotation = Quaternion.LookRotation(Boss.transform.forward);
  5. Debug.DrawRay(transform.position, Boss.transform.forward, Color.red);
  6. }

 

而图中的小绿,则是和小蓝有点类似,一直注视着Boss,但是当Boss发生上下移动(不在同一个水平面)时,就能看到差别了,使用LookRotation()只要计算好需要朝向的向量即可.

  1. void Update()
  2. {
  3. Vector3 dir = Boss.transform.position - transform.position;
  4. dir = new Vector3(dir.x, 0, dir.z);
  5. transform.rotation = Quaternion.LookRotation(dir);
  6. Debug.DrawRay(transform.position, dir, Color.green);
  7. }

关于四元数Quaternion的理解,有个视频讲的很棒,地址:https://www.bilibili.com/video/av33385105?t=21

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/134049
推荐阅读
相关标签
  

闽ICP备14008679号