unity Camera 第三视角(FPS)

2019-03-15  本文已影响0人  WOTTOW

效果图:


Camera_follow.gif

原理:
1.相机跟随player经行移动
2.相机一直跟在人物的身后,不会旋转

旋转是个大麻烦。
涉及到欧拉角或者四元数,研究了半天。发现在unity API中四元素Quaternion.operator ,他满足相机的需求且简单。
描述:用rotation旋转point点。此运算符的作用是对参数坐标点point进行rotation变换。返回的结果是Vector3,就是这个point按照rotation旋转后的另一个。
代码:

    public GameObject camera;
    public Transform playerTransform;
    public float awayZ=3f;
    public float awayY = 3f;
    void Update()
    {
        Quaternion r = playerTransform.rotation;
        Vector3 end = (playerTransform.position - (r * Vector3.forward) * awayZ) + (r * Vector3.up * awayY);
        Debug.DrawLine(playerTransform.position, end, Color.red);
        camera.transform.position = end;
        camera.transform.LookAt(playerTransform);
    }
上一篇 下一篇

猜你喜欢

热点阅读