u3d协程控制匀速旋转角度

本文介绍了一种在Unity中实现将Plane旋转至指定角色正前方的方法。通过计算两个向量之间的夹角并使用协程控制旋转,使得Plane能够平滑地转向目标方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击红色圈中
点击红色圈后,实现选中plane旋转至人物正前方
这里写图片描述

第一步:首先获取选中plane与正前方的夹角

    float AngleGet(Vector3 from, Vector3 to)
    {
        Vector3 v3 = Vector3.Cross(from, to);
        if (v3.y > 0)
            return Vector3.Angle(from, to);
        else
            return 360 - Vector3.Angle(from, to);
    }

第二部:协程控制旋转

    IEnumerator StartTransRotateLerp(Transform trans, float angle)
    {
        if (angle > 180)
        {
            angle = 360 - angle;
            angle = -angle;
        }
        int i = 0;
        float cnt = Mathf.Abs(angle) / 180.0f * 60.0f;
        float clip = angle / cnt;
        while( i < (int)cnt)
        {
            gameObject.transform.Rotate(new Vector3(0, clip, 0));
            i++;
            yield return new WaitForEndOfFrame();
        }
        trans.GetComponent<XinjianIntroPlane>().m_text.SetActive(true);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四夕立羽

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值