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

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

transform.LookAt()

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

    void Update()
    {
        transform.LookAt(Boss.transform);
        Debug.DrawLine(transform.position, Boss.transform.position, Color.blue);
    }

Quaternion.LookRotation()

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

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

 

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

void Update()
    {
        Vector3 dir = Boss.transform.position - transform.position;
        dir = new Vector3(dir.x, 0, dir.z);
        transform.rotation = Quaternion.LookRotation(dir);
        Debug.DrawRay(transform.position, dir, Color.green);
    }

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值