docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Struct TrackableChanges<T>

    Holds arrays of changes to trackables (added, updated, and removed). This is typically used by subsystems to report changes each frame.

    Implements
    IDisposable
    Inherited Members
    ValueType.Equals(object)
    ValueType.GetHashCode()
    ValueType.ToString()
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: UnityEngine.XR.ARSubsystems
    Assembly: Unity.XR.ARSubsystems.dll
    Syntax
    public struct TrackableChanges<T> : IDisposable where T : struct, ITrackable
    Type Parameters
    Name Description
    T

    The ITrackable that can be added and updated.

    Constructors

    TrackableChanges(int, int, int, Allocator)

    Constructs a TrackableChanges<T> from the number of added, updated, and removed trackables. This creates the NativeArrays added, updated, and removed and should be disposed by calling Dispose() on this object.

    Declaration
    public TrackableChanges(int addedCount, int updatedCount, int removedCount, Allocator allocator)
    Parameters
    Type Name Description
    int addedCount

    The number of added trackables.

    int updatedCount

    The number of updated trackables.

    int removedCount

    The number of removed trackables.

    Allocator allocator

    An allocator to use for each of added, updated, and removed arrays.

    TrackableChanges(int, int, int, Allocator, T)

    Constructor which creates all three arrays and fills the added and updated arrays with repeated copies of defaultValue.

    Declaration
    public TrackableChanges(int addedCount, int updatedCount, int removedCount, Allocator allocator, T defaultValue)
    Parameters
    Type Name Description
    int addedCount

    The number of added trackables.

    int updatedCount

    The number of updated trackables.

    int removedCount

    The number of removed trackables.

    Allocator allocator

    The allocator to use for each of added, updated, and removed arrays.

    T defaultValue

    The value with which to fill the added and updated arrays.

    TrackableChanges(void*, int, void*, int, void*, int, T, int, Allocator)

    Constructs a TrackableChanges<T> from native memory.

    Declaration
    public TrackableChanges(void* addedPtr, int addedCount, void* updatedPtr, int updatedCount, void* removedPtr, int removedCount, T defaultT, int stride, Allocator allocator)
    Parameters
    Type Name Description
    void* addedPtr

    A pointer to a block of memory containing addedCount elements each of size stride.

    int addedCount

    The number of added elements.

    void* updatedPtr

    A pointer to a block of memory containing updatedCount elements each of size stride.

    int updatedCount

    The number of updated elements.

    void* removedPtr

    A pointer to a block of memory containing removedCount TrackableIds.

    int removedCount

    The number of removed elements.

    T defaultT

    A default T which should be used to fill the added and updated arrays before copying data from addedPtr and updatedPtr, respectively.

    int stride

    The number of bytes for each element in the addedPtr and updatedPtr arrays.

    Allocator allocator

    An allocator to use when creating the added, updated, and removed arrays.

    Remarks

    Because native code might be using an older version of T, this constructor first fills the added and updated arrays with copies of defaultT before copying the data from the addedPtr and updatedPtr pointers. This ensures that the addition of new fields to T will have appropriate default values.

    Properties

    added

    An array of added trackables.

    Declaration
    public NativeArray<T> added { get; }
    Property Value
    Type Description
    NativeArray<T>

    isCreated

    Whether the NativeArrays have been created.

    Declaration
    public readonly bool isCreated { get; }
    Property Value
    Type Description
    bool

    removed

    An array of TrackableIds that have been removed.

    Declaration
    public NativeArray<TrackableId> removed { get; }
    Property Value
    Type Description
    NativeArray<TrackableId>

    updated

    An array of updated trackables.

    Declaration
    public NativeArray<T> updated { get; }
    Property Value
    Type Description
    NativeArray<T>

    Methods

    CopyFrom(NativeArray<T>, NativeArray<T>, NativeArray<TrackableId>, Allocator)

    Creates a new TrackableChanges<T> from existing NativeArrays.

    Declaration
    public static TrackableChanges<T> CopyFrom(NativeArray<T> added, NativeArray<T> updated, NativeArray<TrackableId> removed, Allocator allocator)
    Parameters
    Type Name Description
    NativeArray<T> added

    An array of added elements.

    NativeArray<T> updated

    An array of updated elements.

    NativeArray<TrackableId> removed

    An array of removed elements.

    Allocator allocator

    The allocator to use for each of the added, updated, and removed arrays.

    Returns
    Type Description
    TrackableChanges<T>

    A new TrackableChanges<T> from existing NativeArrays. The caller must Dispose() the returned TrackableChanges<T> to avoid memory leaks.

    Dispose()

    Disposes the added, updated, and removed arrays. Safe to call on a default-constructed TrackableChanges<T>.

    Declaration
    public void Dispose()

    Implements

    IDisposable
    In This Article
    Back to top
    Copyright © 2024 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)