public NativeList <T> ToList(Allocator allocator) { #if ENABLE_UNITY_COLLECTIONS_CHECKS AtomicSafetyHandle.CheckGetSecondaryDataPointerAndThrow(m_Safety); CheckAllocated(m_ListData); #endif var result = new NativeList <T>(Length, allocator); result.AddRange(this); return(result); }
/// <summary> /// This list as a [NativeArray](https://docs.unity3d.com/ScriptReference/Unity.Collections.NativeArray_1.html). /// </summary> /// <remarks>The array is not a copy; it references the same memory as the original list. You can use the /// NativeArray API to manipulate the list.</remarks> /// <returns>A NativeArray "view" of the list.</returns> public NativeArray <T> AsArray() { #if ENABLE_UNITY_COLLECTIONS_CHECKS AtomicSafetyHandle.CheckGetSecondaryDataPointerAndThrow(m_Safety); var arraySafety = m_Safety; AtomicSafetyHandle.UseSecondaryVersion(ref arraySafety); #endif var array = NativeArrayUnsafeUtility.ConvertExistingDataToNativeArray <T>(m_ListData->Ptr, m_ListData->Length, Allocator.Invalid); #if ENABLE_UNITY_COLLECTIONS_CHECKS NativeArrayUnsafeUtility.SetAtomicSafetyHandle(ref array, arraySafety); #endif return(array); }
public void CopyTo(NativeArray <T> array) { #if ENABLE_UNITY_COLLECTIONS_CHECKS AtomicSafetyHandle.CheckGetSecondaryDataPointerAndThrow(m_Safety); var arraySafety = m_Safety; AtomicSafetyHandle.UseSecondaryVersion(ref arraySafety); #endif var tarray = NativeArrayUnsafeUtility.ConvertExistingDataToNativeArray <T> (m_ListData->buffer, m_ListData->length, Collections.Allocator.None); #if ENABLE_UNITY_COLLECTIONS_CHECKS NativeArrayUnsafeUtility.SetAtomicSafetyHandle(ref tarray, arraySafety); #endif tarray.CopyTo(array); }
public NativeArray <T> AsArray() { #if ENABLE_UNITY_COLLECTIONS_CHECKS AtomicSafetyHandle.CheckGetSecondaryDataPointerAndThrow(m_Safety); var arraySafety = m_Safety; AtomicSafetyHandle.UseSecondaryVersion(ref arraySafety); #endif var array = m_Impl.AsNativeArray(); #if ENABLE_UNITY_COLLECTIONS_CHECKS NativeArrayUnsafeUtility.SetAtomicSafetyHandle(ref array, arraySafety); #endif return(array); }
/// <summary> /// Returns an IEnumerator interface for the container. /// </summary> /// <returns>An IEnumerator interface for the container.</returns> public KeyValueEnumerator GetEnumerator() { #if ENABLE_UNITY_COLLECTIONS_CHECKS AtomicSafetyHandle.CheckGetSecondaryDataPointerAndThrow(m_Safety); var ash = m_Safety; AtomicSafetyHandle.UseSecondaryVersion(ref ash); AtomicSafetyHandle.SetBumpSecondaryVersionOnScheduleWrite(ash, true); #endif return(new KeyValueEnumerator { #if ENABLE_UNITY_COLLECTIONS_CHECKS m_Safety = ash, #endif m_Enumerator = new UnsafeHashMapDataEnumerator(m_MultiHashMapData.m_Buffer), }); }
public NativeArray <T> AsArray() { #if ENABLE_UNITY_COLLECTIONS_CHECKS AtomicSafetyHandle.CheckGetSecondaryDataPointerAndThrow(this.safety); var arraySafety = this.safety; AtomicSafetyHandle.UseSecondaryVersion(ref arraySafety); #endif var array = ConvertExistingDataToNativeArray <T>( this.binaryHeapData->Ptr, this.binaryHeapData->Length, Allocator.Invalid); #if ENABLE_UNITY_COLLECTIONS_CHECKS SetAtomicSafetyHandle(ref array, arraySafety); #endif return(array); }