当前位置:   article > 正文

Unity代替Look方法_unity 替换lookat

unity 替换lookat
 *trSelf* 物体自己
 *lookPos* 需要看向的点
 * directionAxis* 需要看向的轴
 
  void AxisLookAt(Transform trSelf, Vector3 lookPos, Vector3 directionAxis)
    {
        var rotation1 = trSelf.rotation;
        var rotation = rotation1;
        var targetDir = lookPos - trSelf.position;
        //指定哪根轴朝向目标,自行修改Vector3的方向
        var fromDir = rotation1 * directionAxis;
        //计算垂直于当前方向和目标方向的轴
        var axis = Vector3.Cross(fromDir, targetDir).normalized;
        //计算当前方向和目标方向的夹角
        var angle = Vector3.Angle(fromDir, targetDir);
        //将当前朝向向目标方向旋转一定角度,这个角度值可以做插值
        rotation1 = Quaternion.AngleAxis(angle, axis) * rotation;
        trSelf.rotation = rotation1;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/40740
推荐阅读
相关标签
  

闽ICP备14008679号