Version: 2020.3
  • C#


class in Unity.Collections.LowLevel.Unsafe


Implemented in:UnityEngine.CoreModule

Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.




Unsafe utility class.

Static Methods

AddressOfThe memory address of the struct.
AlignOfMinimum alignment of a struct.
ArrayElementAsRefGets a reference to the array element at its current location in memory.
AsReinterprets the reference as a reference of a different type.
AsRefGets a reference to the struct at its current location in memory.
CopyObjectAddressToPtrAssigns an Object reference to a struct or pinned class. See Also: UnsafeUtility.PinGCObjectAndGetAddress.
CopyPtrToStructureCopies sizeof(T) bytes from ptr to output.
CopyStructureToPtrCopies sizeof(T) bytes from input to ptr.
EnumEqualsDetermines whether the specified enums are equal without boxing.
EnumToIntReturn integer representation of enum value without boxing.
FreeFree memory.
GetFieldOffsetReturns the offset of the field relative struct or class it is contained in.
IsBlittableReturns whether the struct is blittable.
IsUnmanagedReturns whether the struct or type is unmanaged. An unmanaged type contains no managed fields, and can be freely copied in memory.
IsValidAllocatorReturns true if the allocator label is valid and can be used to allocate or deallocate memory.
IsValidNativeContainerElementTypeReturns whether the type is acceptable as an element type in native containers.
MallocAllocate memory.
MemClearClear memory.
MemCmpChecks to see whether two memory regions are identical or not by comparing a specified memory region in the first given memory buffer with the same region in the second given memory buffer.
MemCpyCopy memory.
MemCpyReplicateCopy memory and replicate.
MemCpyStrideSimilar to UnsafeUtility.MemCpy but can skip bytes via desinationStride and sourceStride.
MemMoveMove memory.
MemSetSet memory to specified value.
PinGCArrayAndGetDataAddressKeeps a strong GC reference to the object and pins it. The object is guranteed to not move its memory location in a moving GC. Returns the address of the first element of the array.See Also: UnsafeUtility.ReleaseGCObject.
PinGCObjectAndGetAddressKeeps a strong GC reference to the object and pins it. The object is guranteed to not move its memory location in a moving GC. Returns the address of the memory location of the object.See Also: UnsafeUtility.ReleaseGCObject.
ReadArrayElementRead array element.
ReadArrayElementWithStrideRead array element with stride.
ReleaseGCObjectReleases a GC Object Handle, previously aquired by UnsafeUtility.PinGCObjectAndGetAddress.
SizeOfSize of struct.
WriteArrayElementWrite array element.
WriteArrayElementWithStrideWrite array element with stride.