当前位置:   article > 正文

unity中如何让敌人一直朝向玩家角色_unity敌人追踪玩家代码

unity敌人追踪玩家代码

方法一:使用LookAt函数

LookAt函数可以使物体朝向另一个物体。在敌人脚本中,我们可以将玩家角色作为目标,然后在Update函数中使用LookAt函数来实现敌人一直朝向玩家。

以下是实现代码:

  1. public Transform player;
  2. void Update()
  3. {
  4. transform.LookAt(player);
  5. }

这段代码中,我们首先定义了一个Transform类型的变量player来存储玩家角色的Transform组件。然后,在Update函数中,我们使用LookAt函数将敌人朝向玩家角色。

方法二:使用Quaternion.LookRotation函数

Quaternion.LookRotation函数可以返回一个朝向目标的四元数。在敌人脚本中,我们可以获取敌人到玩家角色的向量,然后使用Quaternion.LookRotation函数来计算出敌人朝向玩家的四元数。

以下是实现代码:

  1. public Transform player;
  2. void Update()
  3. {
  4. Vector3 direction = (player.position - transform.position).normalized;
  5. Quaternion lookRotation = Quaternion.LookRotation(direction);
  6. transform.rotation = lookRotation;
  7. }

这段代码中,我们同样定义了一个Transform类型的变量player来存储玩家角色的Transform组件。然后,在Update函数中,我们首先获取敌人到玩家角色的向量,然后使用normalized函数将其单位化。接着,我们使用Quaternion.LookRotation函数计算出朝向玩家的四元数,并将其赋值给敌人的rotation属性。

只旋转一个轴的方法

如果只需要让敌人旋转z轴朝向玩家,可以在前面的代码中修改transform.LookAt(player)为以下代码:

  1. Vector3 direction = (player.position - transform.position).normalized;
  2. transform.rotation = Quaternion.LookRotation(Vector3.forward, direction);

这段代码中,我们使用了Quaternion.LookRotation函数的另一种重载方式。第一个参数为固定的朝向方向,这里我们使用Vector3.forward来表示z轴正方向。第二个参数是我们计算出的敌人到玩家角色的向量。最后,我们将计算出的四元数赋值给敌人的rotation属性,实现了只旋转z轴朝向玩家的效果。

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

闽ICP备14008679号