docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class GhostAnimationController

    A ghost animation controller is a special animation graph which supports ghosting through netcode for entities. It needs to be added to a GameObject which is referenced by an entity through a GhostPresentationGameObjectPrefabReference. The controller has a single graph asset, but that asset can be recursive and contain a full graph.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    GhostAnimationController
    Implements
    IRegisterPlayableData
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.GetComponentIndex()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.NetCode.Hybrid
    Assembly: Unity.NetCode.Hybrid.dll
    Syntax
    [RequireComponent(typeof(Animator), typeof(GhostPresentationGameObjectEntityOwner))]
    [DisallowMultipleComponent]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.netcode@latest/index.html?subfolder=/api/Unity.NetCode.Hybrid.GhostAnimationController.html")]
    public class GhostAnimationController : MonoBehaviour, IRegisterPlayableData

    Fields

    AnimationGraphAsset

    The graph asset used by this controller.

    Declaration
    public GhostAnimationGraphAsset AnimationGraphAsset
    Field Value
    Type Description
    GhostAnimationGraphAsset

    EvaluateGraphInPrediction

    Setting this to true will cause the animation graph to be evaluated as part of the prediction update. Doing that will give you immediate updated to the skeleton, if it is set to false the pose will only be update once per frame after all systems have run, so it has a one frame latency. Setting it to false will also prevet root motion from working.

    Declaration
    public bool EvaluateGraphInPrediction
    Field Value
    Type Description
    bool

    IgnoreEvents

    Setting this to true will prevent the animation system from firing events even if they are specified in the animation nodes. This is mostly useful if you are re-using an asset with events but are not handling the events in the entities version.

    Declaration
    public bool IgnoreEvents
    Field Value
    Type Description
    bool

    Properties

    ApplyRootMotion

    Returns true if root motion is being used by this controller. It is only true if the animator supports it, the graph is evaluated in prediction and the ghost is predicted (when using owner prediction the local players character is predicted). Can be accessed from graph assets to modify behaviour when root motion is enabled.

    Declaration
    public bool ApplyRootMotion { get; }
    Property Value
    Type Description
    bool

    Methods

    GetEntityBuffer<T>()

    Get a DynamicBuffer for a component on the entity associated with the controller. This can only be called from PreparePredictedData.

    Declaration
    public DynamicBuffer<T> GetEntityBuffer<T>() where T : unmanaged, IBufferElementData
    Returns
    Type Description
    DynamicBuffer<T>

    DynamicBuffer<T> of components of type T on controller.

    Type Parameters
    Name Description
    T

    Unmanaged type of IBufferElementData.

    GetEntityComponentData<T>()

    Get a copy of data for a component on the entity associated with the controller. This can only be called from PreparePredictedData.

    Declaration
    public T GetEntityComponentData<T>() where T : unmanaged, IComponentData
    Returns
    Type Description
    T

    Copy of component data of type T.

    Type Parameters
    Name Description
    T

    Unmanaged type of IComponentData.

    GetPlayableDataRef<T>()

    Get a reference to playable data registered by the graph asset. This can only be called from PreparePredictedData.

    Declaration
    public ref T GetPlayableDataRef<T>() where T : unmanaged, IComponentData
    Returns
    Type Description
    T

    Reference to playable data of type T.

    Type Parameters
    Name Description
    T

    Unmanaged type of IComponentData.

    GetPlayableData<T>()

    Get a copy of playable data registered by the graph asset. This can be called at any time.

    Declaration
    public T GetPlayableData<T>() where T : unmanaged, IComponentData
    Returns
    Type Description
    T

    Copy of playable data of type T.

    Type Parameters
    Name Description
    T

    Unmanaged type of IComponentData.

    RegisterPlayableData<T>()

    Implementation of IRegisterPlayableData, should not be called directly.

    Declaration
    public void RegisterPlayableData<T>() where T : unmanaged, IComponentData
    Type Parameters
    Name Description
    T

    Unmanaged type of IComponentData.

    SetEntityComponentData<T>(T)

    Modify the data for a component on the entity associated with the controller. This can only be called from PreparePredictedData.

    Declaration
    public void SetEntityComponentData<T>(T data) where T : unmanaged, IComponentData
    Parameters
    Type Name Description
    T data

    Data to assign to the entity.

    Type Parameters
    Name Description
    T

    Unmanaged type of IComponentData.

    Implements

    IRegisterPlayableData
    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)