您的位置:首页 > 移动开发 > Unity3D

Unity 怎么得到一个可以直接使用的对象与另一个对象之间的Float夹角

2017-07-04 18:21 393 查看
得到一个可以直接使用的对象与另一个对象之间的Float夹角:

float GetMoveToTargetDir(Transform target)
{
Quaternion q = Quaternion.FromToRotation(Vector3.forward, target.position - transform.position);

Vector3 n = q * Vector3.forward;
Vector3 vProj = Vector3.up - n * Vector3.Dot(n, Vector3.up);
vProj.Normalize();
Quaternion qall = Quaternion.AngleAxis(Mathf.Acos(Vector3.Dot(vProj, q * Vector3.up)) * Mathf.Rad2Deg, n) * q;
return qall.eulerAngles.y;
}


根据刚体速度,做一个相应的仪表盘:

float angle = 180 / 3.14f * (刚体速度 / 800 * 180); //把速度转化为角度

UI.eulerAngles = new Vector3(0, 0, 360 - Mathf.Abs(angle)); //应用给UI相应的旋转
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐