Esempio n. 1
0
    void RotateLeft(float rotationAngle)
    {
        var matrix = RotationMatrices.GetLeftHandMatrix(1, 0, 1, rotationAngle, 0f, 0f);

        faceDir           = transform.forward;
        faceDir.z        *= -1;
        faceDir           = MatrixDotVector(matrix, faceDir);
        faceDir.z        *= -1;
        transform.forward = faceDir;
    }
Esempio n. 2
0
    void RotateUp(float rotationAngle)
    {
        faceDir = transform.forward;
        Vector3 projFaceDir = faceDir;

        projFaceDir.y = 0f;
        float angle  = GetRotationAngle(new Vector3(0, 0, -1), projFaceDir) * Mathf.Deg2Rad;
        var   matrix = RotationMatrices.GetLeftHandMatrix(1, 0, 1, -angle, rotationAngle, angle);

        //var matrix1 = RotationMatrices.GetLeftHandMatrix (1, 0, 1, angle, 0, 0);
        //var matrix2 = RotationMatrices.GetLeftHandMatrix (1, 0, 1, 0, rotationAngle, 0);
        //var matrix3 = RotationMatrices.GetLeftHandMatrix (1, 0, 1, 0, 0, -angle);
        faceDir.z *= -1;
        faceDir    = MatrixDotVector(matrix, faceDir);
        //faceDir = MatrixDotVector (matrix1, faceDir);
        //faceDir = MatrixDotVector (matrix2, faceDir);
        //faceDir = MatrixDotVector (matrix3, faceDir);
        faceDir.z        *= -1;
        transform.forward = faceDir;
    }