docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class CollectionHelper

    Provides helper methods for collections.

    Inheritance
    object
    CollectionHelper
    Namespace: Unity.Collections
    Assembly: Unity.Collections.dll
    Syntax
    public static class CollectionHelper

    Fields

    CacheLineSize

    The size in bytes of the current platform's L1 cache lines.

    Declaration
    public const int CacheLineSize = 64
    Field Value
    Type Description
    int

    The size in bytes of the current platform's L1 cache lines.

    Methods

    Align(int, int)

    Returns an allocation size in bytes that factors in alignment.

    Declaration
    public static int Align(int size, int alignmentPowerOfTwo)
    Parameters
    Type Name Description
    int size

    The size to align.

    int alignmentPowerOfTwo

    A non-zero, positive power of two.

    Returns
    Type Description
    int

    The smallest integer that is greater than or equal to size and is a multiple of alignmentPowerOfTwo.

    Examples
      // 55 aligned to 16 is 64.
                 int size = CollectionHelper.Align(55, 16);
    
    Exceptions
    Type Condition
    ArgumentException

    Thrown if alignmentPowerOfTwo is not a non-zero, positive power of two.

    Align(ulong, ulong)

    Returns an allocation size in bytes that factors in alignment.

    Declaration
    public static ulong Align(ulong size, ulong alignmentPowerOfTwo)
    Parameters
    Type Name Description
    ulong size

    The size to align.

    ulong alignmentPowerOfTwo

    A non-zero, positive power of two.

    Returns
    Type Description
    ulong

    The smallest integer that is greater than or equal to size and is a multiple of alignmentPowerOfTwo.

    Examples
      // 55 aligned to 16 is 64.
                 ulong size = CollectionHelper.Align(55, 16);
    
    Exceptions
    Type Condition
    ArgumentException

    Thrown if alignmentPowerOfTwo is not a non-zero, positive power of two.

    CreateNativeArray<T>(int, AllocatorHandle, NativeArrayOptions)

    Create a NativeArray, using a provided AllocatorHandle.

    Declaration
    public static NativeArray<T> CreateNativeArray<T>(int length, AllocatorManager.AllocatorHandle allocator, NativeArrayOptions options = NativeArrayOptions.ClearMemory) where T : struct
    Parameters
    Type Name Description
    int length

    The number of elements to allocate.

    AllocatorManager.AllocatorHandle allocator

    The AllocatorHandle to use.

    NativeArrayOptions options

    Options for allocation, such as whether to clear the memory.

    Returns
    Type Description
    NativeArray<T>

    Returns the NativeArray that was created.

    Type Parameters
    Name Description
    T

    CreateNativeArray<T>(NativeArray<T>, AllocatorHandle)

    Create a NativeArray from another NativeArray, using a provided AllocatorHandle.

    Declaration
    public static NativeArray<T> CreateNativeArray<T>(NativeArray<T> array, AllocatorManager.AllocatorHandle allocator) where T : struct
    Parameters
    Type Name Description
    NativeArray<T> array

    The NativeArray to make a copy of.

    AllocatorManager.AllocatorHandle allocator

    The AllocatorHandle to use.

    Returns
    Type Description
    NativeArray<T>

    Returns the NativeArray that was created.

    Type Parameters
    Name Description
    T

    CreateNativeArray<T>(T[], AllocatorHandle)

    Create a NativeArray from a managed array, using a provided AllocatorHandle.

    Declaration
    public static NativeArray<T> CreateNativeArray<T>(T[] array, AllocatorManager.AllocatorHandle allocator) where T : struct
    Parameters
    Type Name Description
    T[] array

    The managed array to make a copy of.

    AllocatorManager.AllocatorHandle allocator

    The AllocatorHandle to use.

    Returns
    Type Description
    NativeArray<T>

    Returns the NativeArray that was created.

    Type Parameters
    Name Description
    T

    CreateNativeArray<T, U>(int, ref U, NativeArrayOptions)

    Create a NativeArray, using a provided allocator that implements IAllocator.

    Declaration
    public static NativeArray<T> CreateNativeArray<T, U>(int length, ref U allocator, NativeArrayOptions options = NativeArrayOptions.ClearMemory) where T : struct where U : unmanaged, AllocatorManager.IAllocator
    Parameters
    Type Name Description
    int length

    The number of elements to allocate.

    U allocator

    The allocator to use.

    NativeArrayOptions options

    Options for allocation, such as whether to clear the memory.

    Returns
    Type Description
    NativeArray<T>

    Returns the NativeArray that was created.

    Type Parameters
    Name Description
    T
    U

    CreateNativeArray<T, U>(T[], ref U)

    Create a NativeArray from a managed array, using a provided Allocator.

    Declaration
    public static NativeArray<T> CreateNativeArray<T, U>(T[] array, ref U allocator) where T : struct where U : unmanaged, AllocatorManager.IAllocator
    Parameters
    Type Name Description
    T[] array

    The managed array to make a copy of.

    U allocator

    The Allocator to use.

    Returns
    Type Description
    NativeArray<T>

    Returns the NativeArray that was created.

    Type Parameters
    Name Description
    T
    U

    CreateNativeMultiHashMap<TKey, TValue, U>(int, ref U)

    Create a NativeMultiHashMap from a managed array, using a provided Allocator.

    Declaration
    public static NativeMultiHashMap<TKey, TValue> CreateNativeMultiHashMap<TKey, TValue, U>(int length, ref U allocator) where TKey : struct, IEquatable<TKey> where TValue : struct where U : unmanaged, AllocatorManager.IAllocator
    Parameters
    Type Name Description
    int length

    The desired capacity of the NativeMultiHashMap.

    U allocator

    The Allocator to use.

    Returns
    Type Description
    NativeMultiHashMap<TKey, TValue>

    Returns the NativeMultiHashMap that was created.

    Type Parameters
    Name Description
    TKey
    TValue
    U

    Hash(void*, int)

    Returns a (non-cryptographic) hash of a memory block.

    Declaration
    public static uint Hash(void* ptr, int bytes)
    Parameters
    Type Name Description
    void* ptr

    A buffer.

    int bytes

    The number of bytes to hash.

    Returns
    Type Description
    uint

    A hash of the bytes.

    Remarks

    The hash function used is djb2.

    IsAligned(ulong, int)

    Returns true if an offset has a given alignment.

    Declaration
    public static bool IsAligned(ulong offset, int alignmentPowerOfTwo)
    Parameters
    Type Name Description
    ulong offset

    An offset

    int alignmentPowerOfTwo

    A non-zero, positive power of two.

    Returns
    Type Description
    bool

    True if the offset is a multiple of alignmentPowerOfTwo.

    Exceptions
    Type Condition
    ArgumentException

    Thrown if alignmentPowerOfTwo is not a non-zero, positive power of two.

    IsAligned(void*, int)

    Returns true if the address represented by the pointer has a given alignment.

    Declaration
    public static bool IsAligned(void* p, int alignmentPowerOfTwo)
    Parameters
    Type Name Description
    void* p

    The pointer.

    int alignmentPowerOfTwo

    A non-zero, positive power of two.

    Returns
    Type Description
    bool

    True if the address is a multiple of alignmentPowerOfTwo.

    Exceptions
    Type Condition
    ArgumentException

    Thrown if alignmentPowerOfTwo is not a non-zero, positive power of two.

    IsPowerOfTwo(int)

    Returns true if a positive value is a non-zero power of two.

    Declaration
    public static bool IsPowerOfTwo(int value)
    Parameters
    Type Name Description
    int value

    A positive value.

    Returns
    Type Description
    bool

    True if the value is a non-zero, positive power of two.

    Remarks

    Result is invalid if value < 0.

    Log2Ceil(int)

    Returns the binary logarithm of the value, but the result is rounded up to the nearest integer.

    Declaration
    public static int Log2Ceil(int value)
    Parameters
    Type Name Description
    int value

    The value.

    Returns
    Type Description
    int

    The binary logarithm of the value, but the result is rounded up to the nearest integer.

    Log2Floor(int)

    Returns the binary logarithm of the value, but the result is rounded down to the nearest integer.

    Declaration
    public static int Log2Floor(int value)
    Parameters
    Type Name Description
    int value

    The value.

    Returns
    Type Description
    int

    The binary logarithm of the value, but the result is rounded down to the nearest integer.

    SetStaticSafetyId(ref AtomicSafetyHandle, ref int, FixedString512Bytes)

    Returns a static safety id which better identifies resources in safety system messages.

    Declaration
    public static void SetStaticSafetyId(ref AtomicSafetyHandle handle, ref int sharedStaticId, FixedString512Bytes name)
    Parameters
    Type Name Description
    AtomicSafetyHandle handle
    int sharedStaticId
    FixedString512Bytes name

    The name of the resource type.

    Remarks

    This is preferable to AtomicSafetyHandle.NewStaticSafetyId as it is compatible with burst.

    SetStaticSafetyId<T>(ref AtomicSafetyHandle, ref int)

    Returns a static safety id which better identifies resources in safety system messages.

    Declaration
    public static void SetStaticSafetyId<T>(ref AtomicSafetyHandle handle, ref int sharedStaticId)
    Parameters
    Type Name Description
    AtomicSafetyHandle handle
    int sharedStaticId
    Type Parameters
    Name Description
    T
    Remarks

    This is preferable to AtomicSafetyHandle.NewStaticSafetyId as it is compatible with burst.

    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)