美文网首页
方位与向量的运算

方位与向量的运算

作者: 光棍狗没有可持续发展 | 来源:发表于2018-06-24 15:40 被阅读0次

    已知GameObject  _Go,初始点的朝向是面向Vector3.forward(所谓初始点朝向即transform.localRotation = Quaternion.Euler(Vector3.zero)时),获得当前朝向按Y轴旋转的方向向量:

    Vector3 dir= _Go.transform.localRotation * Vector3.forward;

    获得当前朝向按Z轴和X轴旋转的方向向量:

    Vector3 dir= _Go.transform.localRotation * Vector3.up;

    获得当前朝向向量的四元数:

    Vector3 dir= _Go.transform.localRotation * Vector3.forward;

    Quaternion qua = Quaternion.LookRotation(dir);

    或者(x、y、z同时同步)

    Vector3 dir1= _Go.transform.localRotation * Vector3.forward;

    Vector3 dir2= _Go.transform.localRotation * Vector3.up;

    Quaternion qua = Quaternion.LookRotation(dir,dir2);

    计算当前朝向的前方距离10米处:

    Vector3 loc = _Go.transform.rotation * Vector3.forward;

    loc =  _Go.transform.position + loc.normalized * 10;

    计算当前朝向的后方距离10米处:

    Vector3 back10 = _Go.transform.rotation.eulerAngles;

    back10= back10 + new Vector3(0, 180, 0);

    Quaternion qua = Quaternion.Euler(back10);

    back10 = qua * Vector3.forward;

    back10 = vec.normalized * 10 + _Go.transform.position;

    其他方向的计算同理。

    计算在当前的基础上旋转x,y,z度:

    _Go.transform.localRotation = _Go.transform.localRotation * Quaternion.Euler(new Vector3(x,y,z));

    相关文章

      网友评论

          本文标题:方位与向量的运算

          本文链接:https://www.haomeiwen.com/subject/bhzcyftx.html