Class UnsafeUtility | DOTS Runtime | 0.28.0-preview.40
docs.unity3d.com
    Show / Hide Table of Contents

    Class UnsafeUtility

    Inheritance
    Object
    UnsafeUtility
    Namespace: Unity.Collections.LowLevel.Unsafe
    Syntax
    public static class UnsafeUtility

    Methods

    AddressOf<T>(ref T)

    Declaration
    public static void *AddressOf<T>(ref T output)
        where T : struct
    Parameters
    Type Name Description
    T output
    Returns
    Type Description
    Void*
    Type Parameters
    Name Description
    T

    AlignOf<T>()

    Declaration
    public static int AlignOf<T>()
        where T : struct
    Returns
    Type Description
    Int32
    Type Parameters
    Name Description
    T

    ArrayElementAsRef<T>(Void*, Int32)

    Declaration
    public static T ArrayElementAsRef<T>(void *ptr, int index)
        where T : struct
    Parameters
    Type Name Description
    Void* ptr
    Int32 index
    Returns
    Type Description
    T
    Type Parameters
    Name Description
    T

    As<U, T>(ref U)

    Declaration
    public static T As<U, T>(ref U from)
    Parameters
    Type Name Description
    U from
    Returns
    Type Description
    T
    Type Parameters
    Name Description
    U
    T

    AsRef<T>(Void*)

    Declaration
    public static T AsRef<T>(void *p)
        where T : struct
    Parameters
    Type Name Description
    Void* p
    Returns
    Type Description
    T
    Type Parameters
    Name Description
    T

    AssertHeap(Void*)

    Declaration
    public static void AssertHeap(void *dst)
    Parameters
    Type Name Description
    Void* dst

    CallFunctionPtr_p(Void*, Void*)

    Declaration
    public static void CallFunctionPtr_p(void *fnc, void *data)
    Parameters
    Type Name Description
    Void* fnc
    Void* data

    CallFunctionPtr_pi(Void*, Void*, Int32)

    Declaration
    public static void CallFunctionPtr_pi(void *fnc, void *data, int param0)
    Parameters
    Type Name Description
    Void* fnc
    Void* data
    Int32 param0

    CallFunctionPtr_pp(Void*, Void*, Void*)

    Declaration
    public static void CallFunctionPtr_pp(void *fnc, void *data1, void *data2)
    Parameters
    Type Name Description
    Void* fnc
    Void* data1
    Void* data2

    CopyObjectAddressToPtr(Object, Void*)

    Declaration
    public static void CopyObjectAddressToPtr(object target, void *dstPtr)
    Parameters
    Type Name Description
    Object target
    Void* dstPtr

    CopyPtrToStructure<T>(Void*, out T)

    Declaration
    public static void CopyPtrToStructure<T>(void *ptr, out T output)
        where T : struct
    Parameters
    Type Name Description
    Void* ptr
    T output
    Type Parameters
    Name Description
    T

    CopyStructureToPtr<T>(ref T, Void*)

    Declaration
    public static void CopyStructureToPtr<T>(ref T input, void *ptr)
        where T : struct
    Parameters
    Type Name Description
    T input
    Void* ptr
    Type Parameters
    Name Description
    T

    EnumEquals<T>(T, T)

    Declaration
    public static bool EnumEquals<T>(T a, T b)
        where T : struct
    Parameters
    Type Name Description
    T a
    T b
    Returns
    Type Description
    Boolean
    Type Parameters
    Name Description
    T

    EnumToInt<T>(T)

    Declaration
    public static int EnumToInt<T>(T value)
        where T : struct
    Parameters
    Type Name Description
    T value
    Returns
    Type Description
    Int32
    Type Parameters
    Name Description
    T

    Free(Void*, Allocator)

    Declaration
    public static void Free(void *mBuffer, Allocator allocator)
    Parameters
    Type Name Description
    Void* mBuffer
    Allocator allocator

    FreeTempMemory()

    Declaration
    public static void FreeTempMemory()

    GetReasonForValueTypeNonBlittable<T>()

    Declaration
    public static string GetReasonForValueTypeNonBlittable<T>()
        where T : struct
    Returns
    Type Description
    String
    Type Parameters
    Name Description
    T

    IsBlittable(Type)

    Declaration
    public static bool IsBlittable(Type type)
    Parameters
    Type Name Description
    Type type
    Returns
    Type Description
    Boolean

    IsBlittable<T>()

    Declaration
    public static bool IsBlittable<T>()
    Returns
    Type Description
    Boolean
    Type Parameters
    Name Description
    T

    IsUnmanaged<T>()

    Declaration
    public static bool IsUnmanaged<T>()
    Returns
    Type Description
    Boolean
    Type Parameters
    Name Description
    T

    IsValidAllocator(Allocator)

    Declaration
    public static bool IsValidAllocator(Allocator allocator)
    Parameters
    Type Name Description
    Allocator allocator
    Returns
    Type Description
    Boolean

    IsValidNativeContainerElementType<T>()

    Declaration
    public static bool IsValidNativeContainerElementType<T>()
    Returns
    Type Description
    Boolean
    Type Parameters
    Name Description
    T

    Malloc(Int64, Int32, Allocator)

    Declaration
    public static void *Malloc(long totalSize, int alignOf, Allocator allocator)
    Parameters
    Type Name Description
    Int64 totalSize
    Int32 alignOf
    Allocator allocator
    Returns
    Type Description
    Void*

    MemClear(Void*, Int64)

    Declaration
    public static void MemClear(void *mBuffer, long size)
    Parameters
    Type Name Description
    Void* mBuffer
    Int64 size

    MemCmp(Void*, Void*, Int64)

    Declaration
    public static int MemCmp(void *ptr1, void *ptr2, long size)
    Parameters
    Type Name Description
    Void* ptr1
    Void* ptr2
    Int64 size
    Returns
    Type Description
    Int32

    MemCpy(Void*, Void*, Int64)

    Declaration
    public static void MemCpy(void *dst, void *src, long n)
    Parameters
    Type Name Description
    Void* dst
    Void* src
    Int64 n

    MemCpyReplicate(Void*, Void*, Int32, Int32)

    Declaration
    public static void MemCpyReplicate(void *destination, void *source, int size, int count)
    Parameters
    Type Name Description
    Void* destination
    Void* source
    Int32 size
    Int32 count

    MemCpyStride(Void*, Int32, Void*, Int32, Int32, Int64)

    Declaration
    public static void MemCpyStride(void *destination, int destinationStride, void *source, int sourceStride, int elementSize, long count)
    Parameters
    Type Name Description
    Void* destination
    Int32 destinationStride
    Void* source
    Int32 sourceStride
    Int32 elementSize
    Int64 count

    MemMove(Void*, Void*, Int64)

    Declaration
    public static void MemMove(void *destination, void *source, long size)
    Parameters
    Type Name Description
    Void* destination
    Void* source
    Int64 size

    MemoryCompare(Void*, Void*, Int64)

    Declaration
    public static int MemoryCompare(void *left, void *right, long size)
    Parameters
    Type Name Description
    Void* left
    Void* right
    Int64 size
    Returns
    Type Description
    Int32

    MemSet(Void*, Byte, Int64)

    Declaration
    public static void MemSet(void *destination, byte value, long size)
    Parameters
    Type Name Description
    Void* destination
    Byte value
    Int64 size

    PinGCArrayAndGetDataAddress(Array, out UInt64)

    Declaration
    public static void *PinGCArrayAndGetDataAddress(Array target, out ulong gcHandle)
    Parameters
    Type Name Description
    Array target
    UInt64 gcHandle
    Returns
    Type Description
    Void*

    PinGCObjectAndGetAddress(Object, out UInt64)

    Declaration
    public static void *PinGCObjectAndGetAddress(object target, out ulong gcHandle)
    Parameters
    Type Name Description
    Object target
    UInt64 gcHandle
    Returns
    Type Description
    Void*

    ReadArrayElement<T>(Void*, Int32)

    Declaration
    public static T ReadArrayElement<T>(void *source, int index)
    Parameters
    Type Name Description
    Void* source
    Int32 index
    Returns
    Type Description
    T
    Type Parameters
    Name Description
    T

    ReadArrayElementWithStride<T>(Void*, Int32, Int32)

    Declaration
    public static T ReadArrayElementWithStride<T>(void *source, int index, int stride)
    Parameters
    Type Name Description
    Void* source
    Int32 index
    Int32 stride
    Returns
    Type Description
    T
    Type Parameters
    Name Description
    T

    Realloc(Void*, Int64, Int32, Allocator)

    Declaration
    public static void *Realloc(void *oldMem, long newSize, int alignOf, Allocator allocator)
    Parameters
    Type Name Description
    Void* oldMem
    Int64 newSize
    Int32 alignOf
    Allocator allocator
    Returns
    Type Description
    Void*

    ReleaseGCObject(UInt64)

    Declaration
    public static void ReleaseGCObject(ulong gcHandle)
    Parameters
    Type Name Description
    UInt64 gcHandle

    SizeOf<T>()

    Declaration
    public static int SizeOf<T>()
        where T : struct
    Returns
    Type Description
    Int32
    Type Parameters
    Name Description
    T

    WriteArrayElement<T>(Void*, Int32, T)

    Declaration
    public static void WriteArrayElement<T>(void *destination, int index, T value)
    Parameters
    Type Name Description
    Void* destination
    Int32 index
    T value
    Type Parameters
    Name Description
    T

    WriteArrayElementWithStride<T>(Void*, Int32, Int32, T)

    Declaration
    public static void WriteArrayElementWithStride<T>(void *destination, int index, int stride, T value)
    Parameters
    Type Name Description
    Void* destination
    Int32 index
    Int32 stride
    T value
    Type Parameters
    Name Description
    T
    In This Article
    • Methods
      • AddressOf<T>(ref T)
      • AlignOf<T>()
      • ArrayElementAsRef<T>(Void*, Int32)
      • As<U, T>(ref U)
      • AsRef<T>(Void*)
      • AssertHeap(Void*)
      • CallFunctionPtr_p(Void*, Void*)
      • CallFunctionPtr_pi(Void*, Void*, Int32)
      • CallFunctionPtr_pp(Void*, Void*, Void*)
      • CopyObjectAddressToPtr(Object, Void*)
      • CopyPtrToStructure<T>(Void*, out T)
      • CopyStructureToPtr<T>(ref T, Void*)
      • EnumEquals<T>(T, T)
      • EnumToInt<T>(T)
      • Free(Void*, Allocator)
      • FreeTempMemory()
      • GetReasonForValueTypeNonBlittable<T>()
      • IsBlittable(Type)
      • IsBlittable<T>()
      • IsUnmanaged<T>()
      • IsValidAllocator(Allocator)
      • IsValidNativeContainerElementType<T>()
      • Malloc(Int64, Int32, Allocator)
      • MemClear(Void*, Int64)
      • MemCmp(Void*, Void*, Int64)
      • MemCpy(Void*, Void*, Int64)
      • MemCpyReplicate(Void*, Void*, Int32, Int32)
      • MemCpyStride(Void*, Int32, Void*, Int32, Int32, Int64)
      • MemMove(Void*, Void*, Int64)
      • MemoryCompare(Void*, Void*, Int64)
      • MemSet(Void*, Byte, Int64)
      • PinGCArrayAndGetDataAddress(Array, out UInt64)
      • PinGCObjectAndGetAddress(Object, out UInt64)
      • ReadArrayElement<T>(Void*, Int32)
      • ReadArrayElementWithStride<T>(Void*, Int32, Int32)
      • Realloc(Void*, Int64, Int32, Allocator)
      • ReleaseGCObject(UInt64)
      • SizeOf<T>()
      • WriteArrayElement<T>(Void*, Int32, T)
      • WriteArrayElementWithStride<T>(Void*, Int32, Int32, T)
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023