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)

    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
    AllocatorManager.AllocatorHandle allocator
    NativeArrayOptions options
    Returns
    Type Description
    NativeArray<T>
    Type Parameters
    Name Description
    T

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

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

    CreateNativeArray<T>(T[], AllocatorHandle)

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

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

    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
    U allocator
    NativeArrayOptions options
    Returns
    Type Description
    NativeArray<T>
    Type Parameters
    Name Description
    T
    U

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

    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
    U allocator
    Returns
    Type Description
    NativeArray<T>
    Type Parameters
    Name Description
    T
    U

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

    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
    U allocator
    Returns
    Type Description
    NativeMultiHashMap<TKey, TValue>
    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.

    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)