【发布时间】:2019-01-13 11:17:31
【问题描述】:
我在 Unity3D 中有一个激光炮塔,我想将其转向敌人。炮塔由一个“腿”和一个“头”组成(图上选1)。头部可以围绕球形关节平移和倾斜。
我执行以下操作:
Vector3 targetDir = collision.gameObject.transform.position - turretHead.transform.position;
float step = turnSpeed * Time.deltaTime;
Vector3 newDir = Vector3.RotateTowards(turretHead.transform.forward, targetDir, step, 0.0f);
turretHead.transform.rotation = Quaternion.LookRotation(newDir);
问题在于,由于头部的枢轴与激光束不对齐,炮塔转向几乎正确的方向,但它在目标上方射击。 (如果激光从枢轴的红轴射出,它会完美命中。)
除了自己进行计算之外,是否有内置方法或一些技巧来实现正确的功能?
【问题讨论】:
标签: c# unity3d 3d rotation quaternions