前篇链接:Unity之C#学习笔记(4):Unity中旋转的表示——四元数 Quaternion(上)
在上节中,我们学习了代表无旋转的静态量Quaternion.identity和将欧拉角转换为四元数的方法Quaternion.Euler,它们在初始化中很常用。在这节,我们讲解另外两个方法Quaternion.LookRotation和Quaternion.Slerp,它们能为你实现实时追踪目标的效果。
假设我们现在要设计一个能自动追踪玩家的敌方AI。除了在位置上能向玩家的方向移动,我们还希望这个AI能一直“面向”玩家,便于后续添加一些如发射子弹之类的功能。想搞清楚物体具体的旋转参数是相当麻烦的,但Unity为我们提供了一个非常好用的方法Quaternion.LookRotation:

我们暂时不用管第二个参数。第一个参数是一个Vector3变量,它的意思就是“看向”的方向。这个方向其实就是目标和自身position相减所得的值。调用这个方法,我们不用管物体的旋转参数怎么计算,只需要传一个目标减去自身的Vector3值即可。让我们实际试一试。
创建一个Player和一个Enemy,然后创建一个Aim脚本,挂在Enemy上,并将_playerTransform引用到Player:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Aim : MonoBehaviour
{
[SerializeField]

最低0.47元/天 解锁文章
2575

被折叠的 条评论
为什么被折叠?



