docs.unity3d.com
    Show / Hide Table of Contents

    Class FreeFlyCamera

    A generic free fly camera with pan, move, rotation, orbit and automatic positioning features.

    Inheritance
    Object
    UnityEngine.Object
    UnityEngine.Component
    UnityEngine.Behaviour
    UnityEngine.MonoBehaviour
    FreeFlyCamera
    Inherited Members
    UnityEngine.MonoBehaviour.IsInvoking()
    UnityEngine.MonoBehaviour.CancelInvoke()
    UnityEngine.MonoBehaviour.Invoke(System.String, System.Single)
    UnityEngine.MonoBehaviour.InvokeRepeating(System.String, System.Single, System.Single)
    UnityEngine.MonoBehaviour.CancelInvoke(System.String)
    UnityEngine.MonoBehaviour.IsInvoking(System.String)
    UnityEngine.MonoBehaviour.StartCoroutine(System.String)
    UnityEngine.MonoBehaviour.StartCoroutine(System.String, System.Object)
    UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)
    UnityEngine.MonoBehaviour.StartCoroutine_Auto(System.Collections.IEnumerator)
    UnityEngine.MonoBehaviour.StopCoroutine(System.Collections.IEnumerator)
    UnityEngine.MonoBehaviour.StopCoroutine(UnityEngine.Coroutine)
    UnityEngine.MonoBehaviour.StopCoroutine(System.String)
    UnityEngine.MonoBehaviour.StopAllCoroutines()
    UnityEngine.MonoBehaviour.print(System.Object)
    UnityEngine.MonoBehaviour.destroyCancellationToken
    UnityEngine.MonoBehaviour.useGUILayout
    UnityEngine.MonoBehaviour.runInEditMode
    UnityEngine.Behaviour.enabled
    UnityEngine.Behaviour.isActiveAndEnabled
    UnityEngine.Component.GetComponent(System.Type)
    UnityEngine.Component.GetComponent<T>()
    UnityEngine.Component.TryGetComponent(System.Type, UnityEngine.Component)
    UnityEngine.Component.TryGetComponent<T>(T)
    UnityEngine.Component.GetComponent(System.String)
    UnityEngine.Component.GetComponentInChildren(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentInChildren(System.Type)
    UnityEngine.Component.GetComponentInChildren<T>(System.Boolean)
    UnityEngine.Component.GetComponentInChildren<T>()
    UnityEngine.Component.GetComponentsInChildren(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentsInChildren(System.Type)
    UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean)
    UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean, System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentsInChildren<T>()
    UnityEngine.Component.GetComponentsInChildren<T>(System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentInParent(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentInParent(System.Type)
    UnityEngine.Component.GetComponentInParent<T>(System.Boolean)
    UnityEngine.Component.GetComponentInParent<T>()
    UnityEngine.Component.GetComponentsInParent(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentsInParent(System.Type)
    UnityEngine.Component.GetComponentsInParent<T>(System.Boolean)
    UnityEngine.Component.GetComponentsInParent<T>(System.Boolean, System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentsInParent<T>()
    UnityEngine.Component.GetComponents(System.Type)
    UnityEngine.Component.GetComponents(System.Type, System.Collections.Generic.List<UnityEngine.Component>)
    UnityEngine.Component.GetComponents<T>(System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponents<T>()
    UnityEngine.Component.CompareTag(System.String)
    UnityEngine.Component.SendMessageUpwards(System.String, System.Object, UnityEngine.SendMessageOptions)
    UnityEngine.Component.SendMessageUpwards(System.String, System.Object)
    UnityEngine.Component.SendMessageUpwards(System.String)
    UnityEngine.Component.SendMessageUpwards(System.String, UnityEngine.SendMessageOptions)
    UnityEngine.Component.SendMessage(System.String, System.Object)
    UnityEngine.Component.SendMessage(System.String)
    UnityEngine.Component.SendMessage(System.String, System.Object, UnityEngine.SendMessageOptions)
    UnityEngine.Component.SendMessage(System.String, UnityEngine.SendMessageOptions)
    UnityEngine.Component.BroadcastMessage(System.String, System.Object, UnityEngine.SendMessageOptions)
    UnityEngine.Component.BroadcastMessage(System.String, System.Object)
    UnityEngine.Component.BroadcastMessage(System.String)
    UnityEngine.Component.BroadcastMessage(System.String, UnityEngine.SendMessageOptions)
    UnityEngine.Component.transform
    UnityEngine.Component.gameObject
    UnityEngine.Component.tag
    UnityEngine.Component.rigidbody
    UnityEngine.Component.rigidbody2D
    UnityEngine.Component.camera
    UnityEngine.Component.light
    UnityEngine.Component.animation
    UnityEngine.Component.constantForce
    UnityEngine.Component.renderer
    UnityEngine.Component.audio
    UnityEngine.Component.networkView
    UnityEngine.Component.collider
    UnityEngine.Component.collider2D
    UnityEngine.Component.hingeJoint
    UnityEngine.Component.particleSystem
    UnityEngine.Object.GetInstanceID()
    UnityEngine.Object.GetHashCode()
    UnityEngine.Object.Equals(System.Object)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
    UnityEngine.Object.Instantiate(UnityEngine.Object)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform, System.Boolean)
    UnityEngine.Object.Instantiate<T>(T)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform, System.Boolean)
    UnityEngine.Object.Destroy(UnityEngine.Object, System.Single)
    UnityEngine.Object.Destroy(UnityEngine.Object)
    UnityEngine.Object.DestroyImmediate(UnityEngine.Object, System.Boolean)
    UnityEngine.Object.DestroyImmediate(UnityEngine.Object)
    UnityEngine.Object.FindObjectsOfType(System.Type)
    UnityEngine.Object.FindObjectsOfType(System.Type, System.Boolean)
    UnityEngine.Object.FindObjectsByType(System.Type, UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectsByType(System.Type, UnityEngine.FindObjectsInactive, UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.DontDestroyOnLoad(UnityEngine.Object)
    UnityEngine.Object.DestroyObject(UnityEngine.Object, System.Single)
    UnityEngine.Object.DestroyObject(UnityEngine.Object)
    UnityEngine.Object.FindSceneObjectsOfType(System.Type)
    UnityEngine.Object.FindObjectsOfTypeIncludingAssets(System.Type)
    UnityEngine.Object.FindObjectsOfType<T>()
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectsOfType<T>(System.Boolean)
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsInactive, UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectOfType<T>()
    UnityEngine.Object.FindObjectOfType<T>(System.Boolean)
    UnityEngine.Object.FindFirstObjectByType<T>()
    UnityEngine.Object.FindAnyObjectByType<T>()
    UnityEngine.Object.FindFirstObjectByType<T>(UnityEngine.FindObjectsInactive)
    UnityEngine.Object.FindAnyObjectByType<T>(UnityEngine.FindObjectsInactive)
    UnityEngine.Object.FindObjectsOfTypeAll(System.Type)
    UnityEngine.Object.FindObjectOfType(System.Type)
    UnityEngine.Object.FindFirstObjectByType(System.Type)
    UnityEngine.Object.FindAnyObjectByType(System.Type)
    UnityEngine.Object.FindObjectOfType(System.Type, System.Boolean)
    UnityEngine.Object.FindFirstObjectByType(System.Type, UnityEngine.FindObjectsInactive)
    UnityEngine.Object.FindAnyObjectByType(System.Type, UnityEngine.FindObjectsInactive)
    UnityEngine.Object.ToString()
    UnityEngine.Object.name
    UnityEngine.Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Unity.Cloud.Metadata.Samples.ObjectPicking
    Syntax
    [RequireComponent(typeof(Camera))]
    public class FreeFlyCamera : MonoBehaviour

    Methods

    MoveInLocalDirection(Vector3)

    Move the camera in the specified local direction.

    Declaration
    public void MoveInLocalDirection(Vector3 unitDir)
    Parameters
    Type Name Description
    UnityEngine.Vector3 unitDir

    A unit vector indicating the local direction in which the camera should move.

    Remarks

    After being called once, this method will continue to move the camera in the specified direction. You need to call it with a zero vector to stop the camera from moving.

    MoveOnLookAtAxis(Single)

    Move on the forward axis of the camera. The operation is similar to a zoom without changing FOV.

    Declaration
    public void MoveOnLookAtAxis(float nbUnits)
    Parameters
    Type Name Description
    Single nbUnits

    The number of units to move forward. A negative value will move the camera away from the look at point.

    Remarks

    This function does nothing if the new distance from lookAt is greater than the maximum camera distance.

    MovePosition(Vector3)

    Move the current position of the camera by an offset.

    Declaration
    public void MovePosition(Vector3 offset)
    Parameters
    Type Name Description
    UnityEngine.Vector3 offset

    The offset by which the camera should be moved.

    OrbitAroundLookAt(Vector2)

    Orbit around the look at point with up vector fixed to Y.

    Declaration
    public void OrbitAroundLookAt(Vector2 angleOffset)
    Parameters
    Type Name Description
    UnityEngine.Vector2 angleOffset
    Remarks

    The is the same value that is provided in Rotate(Vector2) because the orbit rotation and camera rotation matches when orbiting.

    Pan(Vector3)

    Drag the camera on the current frustum plane. If the camera is looking forward, Pan(Vector3) will drag the camera on its local up and right vectors.

    Declaration
    public void Pan(Vector3 offset)
    Parameters
    Type Name Description
    UnityEngine.Vector3 offset

    ResetTracking(Vector3, Quaternion, Vector3)

    Resets the camera tracking to the desired values.

    Declaration
    public void ResetTracking(Vector3 pos, Quaternion rotation, Vector3 lookAt)
    Parameters
    Type Name Description
    UnityEngine.Vector3 pos

    The desired position.

    UnityEngine.Quaternion rotation

    The desired rotation.

    UnityEngine.Vector3 lookAt

    The desired lookAt direction.

    Rotate(Vector2)

    Rotate the camera by adding an offset to the current rotation.

    Declaration
    public void Rotate(Vector2 angleOffset)
    Parameters
    Type Name Description
    UnityEngine.Vector2 angleOffset

    A rotation around the y axis, then the x axis

    Remarks

    The is a rotation in azimuth coordinate where Y is up axis (azimuth angle, clockwise) and X, right axis (altitude, clockwise)

    SetCameraSpeedSettings(Bounds)

    Adjusts the camera speed settings to optimally navigate an area contained within the desired UnityEngine.Bounds.

    Declaration
    public void SetCameraSpeedSettings(Bounds bb)
    Parameters
    Type Name Description
    UnityEngine.Bounds bb

    The reference UnityEngine.Bounds to navigate around/within.

    Back to top
    Terms of use
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023