相机脱离父物体跟随player(保持距离不变)

public GameObject Camera;
    public GameObject player;

    public Vector3 offset;
    
    public Camera camera;
    void Start()
    {

        offset = player.transform.position - Camera.transform.position;

    }

    // Update is called once per frame
    void LateUpdate()
    {
        Camera.transform.position = transformVecter(-offset, player.transform.position, player.transform.right, player.transform.up, player.transform.forward);
        Camera.transform.rotation = Quaternion.LookRotation(player.transform.position - Camera.transform.position);
    }
    // 求以origin为原点, locX, locY, locZ 为坐标轴的本地坐标系中的向量 vec 在世界坐标系中对应的向量
    private Vector3 transformVecter(Vector3 vec, Vector3 origin, Vector3 locX, Vector3 locY, Vector3 locZ)
    {
        return vec.x * locX + vec.y * locY + vec.z * locZ + origin;
    }

猜你喜欢

转载自blog.csdn.net/h_ppap/article/details/129197065