docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Native container component support

    The Collections package provides native container types such as NativeList and NativeHashMap, plus unsafe containers such as UnsafeList. You can use these container types in components.

    Both native and unsafe containers are value types rather than reference types. The key differences between Unsafe containers and Native containers are:

    • You can only use the Jobs Debugger with native containers.
    • Native containers copy a reference to its underlying data.

    A NativeContainer is safer and consistently meets expectations than an UnsafeContainer.

    Component limitations

    If you put container types in a component, they have the following limitations:

    Functionality Native containers Unsafe containers
    Compatible with Jobs Debugger Yes No
    Can be used in job worker threads Yes Yes
    Can be used on main thread Yes Yes
    Usable with ComponentLookup on main thread Yes Yes
    Usable with ComponentLookup in job worker threads No Yes
    Can contain other NativeContainers No Yes

    This is technically supported but impacts performance.
    Can contain other UnsafeContainers Yes Yes

    These restrictions don't apply to usage of native containers outside of components. For example, NativeContainers can nest other NativeContainers on the main thread (though it isn't possible to do this in job structs).

    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)