docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class DemonstrationRecorder

    The Demonstration Recorder component facilitates the recording of demonstrations used for imitation learning.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    DemonstrationRecorder
    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.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)
    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.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.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    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.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectOfType<T>()
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.MLAgents.Demonstrations
    Assembly: Unity.ML-Agents.dll
    Syntax
    [RequireComponent(typeof(Agent))]
    [AddComponentMenu("ML Agents/Demonstration Recorder", 0)]
    public class DemonstrationRecorder : MonoBehaviour
    Remarks

    Add this component to the [GameObject] containing an Agent to enable recording the agent for imitation learning. You must implement the Heuristic(in ActionBuffers) function of the agent to provide manual control in order to record demonstrations.

     See [Imitation Learning - Recording Demonstrations] for more information.
    
     [GameObject]: https://docs.unity3d.com/Manual/GameObjects.html
     [Imitation Learning - Recording Demonstrations]: https://github.com/Unity-Technologies/ml-agents/blob/release_17_docs/docs//Learning-Environment-Design-Agents.md#recording-demonstrations
    

    Fields

    DemonstrationDirectory

    Directory to save the demo files. Will default to a "Demonstrations/" folder in the Application data path if not specified.

    Declaration
    [FormerlySerializedAs("demonstrationDirectory")]
    [Tooltip("Directory to save the demo files. Will default to {Application.dataPath}/Demonstrations if not specified.")]
    public string DemonstrationDirectory
    Field Value
    Type Description
    string

    DemonstrationName

    Base demonstration file name. If multiple files are saved, the additional filenames will have a sequence of unique numbers appended.

    Declaration
    [FormerlySerializedAs("demonstrationName")]
    [Tooltip("Base demonstration file name. If multiple files are saved, the additional filenames will have a unique number appended.")]
    public string DemonstrationName
    Field Value
    Type Description
    string

    NumStepsToRecord

    Number of steps to record. The editor will stop playing when it reaches this threshold. Set to zero to record indefinitely.

    Declaration
    [Tooltip("Number of steps to record. The editor will stop playing when it reaches this threshold. Set to zero to record indefinitely.")]
    public int NumStepsToRecord
    Field Value
    Type Description
    int

    Record

    Whether or not to record demonstrations.

    Declaration
    [FormerlySerializedAs("record")]
    [Tooltip("Whether or not to record demonstrations.")]
    public bool Record
    Field Value
    Type Description
    bool

    Methods

    AddDemonstrationWriterToAgent(DemonstrationWriter)

    Add additional DemonstrationWriter to the Agent. It is still up to the user to Close this DemonstrationWriters when recording is done.

    Declaration
    public void AddDemonstrationWriterToAgent(DemonstrationWriter demoWriter)
    Parameters
    Type Name Description
    DemonstrationWriter demoWriter

    Close()

    Close the DemonstrationWriter and remove it from the Agent. Has no effect if the DemonstrationWriter is already closed (or wasn't opened)

    Declaration
    public void Close()

    RemoveDemonstrationWriterFromAgent(DemonstrationWriter)

    Remove additional DemonstrationWriter to the Agent. It is still up to the user to Close this DemonstrationWriters when recording is done.

    Declaration
    public void RemoveDemonstrationWriterFromAgent(DemonstrationWriter demoWriter)
    Parameters
    Type Name Description
    DemonstrationWriter demoWriter
    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)