docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class UnityQuaternionExtensions

    Extensions to the Quaternion class, used in various places by Cinemachine

    Inheritance
    object
    UnityQuaternionExtensions
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Unity.Cinemachine
    Assembly: Unity.Cinemachine.dll
    Syntax
    public static class UnityQuaternionExtensions

    Methods

    ApplyCameraRotation(Quaternion, Vector2, Vector3)

    Apply rotations, first about world up, then about (travelling) local right. rot.y is rotation about worldUp, and rot.x is second rotation, about local right.

    Declaration
    public static Quaternion ApplyCameraRotation(this Quaternion orient, Vector2 rot, Vector3 worldUp)
    Parameters
    Type Name Description
    Quaternion orient
    Vector2 rot

    Vector2.y is rotation about worldUp, and Vector2.x is second rotation, about local right.

    Vector3 worldUp

    Which way is up

    Returns
    Type Description
    Quaternion

    Result rotation after the input is applied to the input quaternion

    GetCameraRotationToTarget(Quaternion, Vector3, Vector3)

    Get the rotations, first about world up, then about (travelling) local right, necessary to align the quaternion's forward with the target direction. This represents the tripod head movement needed to look at the target. This formulation makes it easy to interpolate without introducing spurious roll.

    Declaration
    public static Vector2 GetCameraRotationToTarget(this Quaternion orient, Vector3 lookAtDir, Vector3 worldUp)
    Parameters
    Type Name Description
    Quaternion orient
    Vector3 lookAtDir

    The world-space target direction in which we want to look

    Vector3 worldUp

    Which way is up. Must have a length of 1.

    Returns
    Type Description
    Vector2

    Vector2.y is rotation about worldUp, and Vector2.x is second rotation, about local right.

    SlerpWithReferenceUp(Quaternion, Quaternion, float, Vector3)

    This is a slerp that mimics a camera operator's movement in that it chooses a path that avoids the lower hemisphere, as defined by the up param

    Declaration
    public static Quaternion SlerpWithReferenceUp(Quaternion qA, Quaternion qB, float t, Vector3 up)
    Parameters
    Type Name Description
    Quaternion qA

    First direction

    Quaternion qB

    Second direction

    float t

    Interpolation amount

    Vector3 up

    Defines the up direction. Must have a length of 1.

    Returns
    Type Description
    Quaternion

    Interpolated quaternion

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)