using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections;
using UnityEngine;

namespace MTAssets.UltimateLODSystem
{
	// Token: 0x02000665 RID: 1637
	public class RuntimeCameraDetector : MonoBehaviour
	{
		// Token: 0x0600A77E RID: 42878 RVA: 0x002AEA80 File Offset: 0x002ACC80
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655335, XrefRangeEnd = 655350, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Awake()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector.NativeMethodInfoPtr_Awake_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A77F RID: 42879 RVA: 0x002AEAC4 File Offset: 0x002ACCC4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655350, XrefRangeEnd = 655355, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IEnumerator ArrayOfCamerasDelayedUpdater()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector.NativeMethodInfoPtr_ArrayOfCamerasDelayedUpdater_Private_IEnumerator_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new IEnumerator(intPtr3) : null;
		}

		// Token: 0x0600A780 RID: 42880 RVA: 0x002AEB1C File Offset: 0x002ACD1C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655355, XrefRangeEnd = 655360, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IEnumerator CurrentCameraOnScreenDetector()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector.NativeMethodInfoPtr_CurrentCameraOnScreenDetector_Private_IEnumerator_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new IEnumerator(intPtr3) : null;
		}

		// Token: 0x0600A781 RID: 42881 RVA: 0x002AEB74 File Offset: 0x002ACD74
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655360, XrefRangeEnd = 655374, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe RuntimeCameraDetector()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A782 RID: 42882 RVA: 0x002AEBC0 File Offset: 0x002ACDC0
		// Note: this type is marked as 'beforefieldinit'.
		static RuntimeCameraDetector()
		{
			Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem", "RuntimeCameraDetector");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr);
			RuntimeCameraDetector.NativeFieldInfoPtr_DELAY_BETWEEN_ARRAY_OF_CAMERAS_UPDATE = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, "DELAY_BETWEEN_ARRAY_OF_CAMERAS_UPDATE");
			RuntimeCameraDetector.NativeFieldInfoPtr_DELAY_BETWEEN_CURRENT_CAMERA_DETECTOR = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, "DELAY_BETWEEN_CURRENT_CAMERA_DETECTOR");
			RuntimeCameraDetector.NativeFieldInfoPtr_currentArrayOfCameras = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, "currentArrayOfCameras");
			RuntimeCameraDetector.NativeMethodInfoPtr_Awake_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, 100676253);
			RuntimeCameraDetector.NativeMethodInfoPtr_ArrayOfCamerasDelayedUpdater_Private_IEnumerator_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, 100676254);
			RuntimeCameraDetector.NativeMethodInfoPtr_CurrentCameraOnScreenDetector_Private_IEnumerator_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, 100676255);
			RuntimeCameraDetector.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, 100676256);
		}

		// Token: 0x0600A783 RID: 42883 RVA: 0x0000351C File Offset: 0x0000171C
		public RuntimeCameraDetector(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x1700389D RID: 14493
		// (get) Token: 0x0600A784 RID: 42884 RVA: 0x002AEC7C File Offset: 0x002ACE7C
		// (set) Token: 0x0600A785 RID: 42885 RVA: 0x002AECB0 File Offset: 0x002ACEB0
		public unsafe WaitForSecondsRealtime DELAY_BETWEEN_ARRAY_OF_CAMERAS_UPDATE
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector.NativeFieldInfoPtr_DELAY_BETWEEN_ARRAY_OF_CAMERAS_UPDATE);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new WaitForSecondsRealtime(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector.NativeFieldInfoPtr_DELAY_BETWEEN_ARRAY_OF_CAMERAS_UPDATE), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x1700389E RID: 14494
		// (get) Token: 0x0600A786 RID: 42886 RVA: 0x002AECD8 File Offset: 0x002ACED8
		// (set) Token: 0x0600A787 RID: 42887 RVA: 0x002AED0C File Offset: 0x002ACF0C
		public unsafe WaitForSecondsRealtime DELAY_BETWEEN_CURRENT_CAMERA_DETECTOR
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector.NativeFieldInfoPtr_DELAY_BETWEEN_CURRENT_CAMERA_DETECTOR);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new WaitForSecondsRealtime(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector.NativeFieldInfoPtr_DELAY_BETWEEN_CURRENT_CAMERA_DETECTOR), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x1700389F RID: 14495
		// (get) Token: 0x0600A788 RID: 42888 RVA: 0x002AED34 File Offset: 0x002ACF34
		// (set) Token: 0x0600A789 RID: 42889 RVA: 0x002AED68 File Offset: 0x002ACF68
		public unsafe Il2CppReferenceArray<Camera> currentArrayOfCameras
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector.NativeFieldInfoPtr_currentArrayOfCameras);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppReferenceArray<Camera>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector.NativeFieldInfoPtr_currentArrayOfCameras), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x0400703F RID: 28735
		private static readonly IntPtr NativeFieldInfoPtr_DELAY_BETWEEN_ARRAY_OF_CAMERAS_UPDATE;

		// Token: 0x04007040 RID: 28736
		private static readonly IntPtr NativeFieldInfoPtr_DELAY_BETWEEN_CURRENT_CAMERA_DETECTOR;

		// Token: 0x04007041 RID: 28737
		private static readonly IntPtr NativeFieldInfoPtr_currentArrayOfCameras;

		// Token: 0x04007042 RID: 28738
		private static readonly IntPtr NativeMethodInfoPtr_Awake_Public_Void_0;

		// Token: 0x04007043 RID: 28739
		private static readonly IntPtr NativeMethodInfoPtr_ArrayOfCamerasDelayedUpdater_Private_IEnumerator_0;

		// Token: 0x04007044 RID: 28740
		private static readonly IntPtr NativeMethodInfoPtr_CurrentCameraOnScreenDetector_Private_IEnumerator_0;

		// Token: 0x04007045 RID: 28741
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000666 RID: 1638
		[ObfuscatedName("MTAssets.UltimateLODSystem.RuntimeCameraDetector/<ArrayOfCamerasDelayedUpdater>d__4")]
		public sealed class _ArrayOfCamerasDelayedUpdater_d__4 : Il2CppSystem.Object
		{
			// Token: 0x0600A78A RID: 42890 RVA: 0x002AED90 File Offset: 0x002ACF90
			[CallerCount(350)]
			[CachedScanResults(RefRangeStart = 11975, RefRangeEnd = 12325, XrefRangeStart = 11975, XrefRangeEnd = 12325, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe _ArrayOfCamerasDelayedUpdater_d__4(int <>1__state)
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr))
			{
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref <>1__state;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr__ctor_Public_Void_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}

			// Token: 0x0600A78B RID: 42891 RVA: 0x002AEDF0 File Offset: 0x002ACFF0
			[CallerCount(5874)]
			[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5898, XrefRangeStart = 24, XrefRangeEnd = 5898, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_IDisposable_Dispose()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x0600A78C RID: 42892 RVA: 0x002AEE34 File Offset: 0x002AD034
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655317, XrefRangeEnd = 655321, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe bool MoveNext()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}

			// Token: 0x170038A3 RID: 14499
			// (get) Token: 0x0600A78D RID: 42893 RVA: 0x002AEE84 File Offset: 0x002AD084
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7527, RefRangeEnd = 7537, XrefRangeStart = 7527, XrefRangeEnd = 7537, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A78E RID: 42894 RVA: 0x002AEEDC File Offset: 0x002AD0DC
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655321, XrefRangeEnd = 655326, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_Collections_IEnumerator_Reset()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x170038A4 RID: 14500
			// (get) Token: 0x0600A78F RID: 42895 RVA: 0x002AEF20 File Offset: 0x002AD120
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7527, RefRangeEnd = 7537, XrefRangeStart = 7527, XrefRangeEnd = 7537, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A790 RID: 42896 RVA: 0x002AEF78 File Offset: 0x002AD178
			// Note: this type is marked as 'beforefieldinit'.
			static _ArrayOfCamerasDelayedUpdater_d__4()
			{
				Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, "<ArrayOfCamerasDelayedUpdater>d__4");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr);
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___1__state = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, "<>1__state");
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___2__current = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, "<>2__current");
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___4__this = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, "<>4__this");
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr__ctor_Public_Void_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, 100676257);
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, 100676258);
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, 100676259);
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, 100676260);
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, 100676261);
				RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4>.NativeClassPtr, 100676262);
			}

			// Token: 0x0600A791 RID: 42897 RVA: 0x0000A74C File Offset: 0x0000894C
			public _ArrayOfCamerasDelayedUpdater_d__4(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x170038A0 RID: 14496
			// (get) Token: 0x0600A792 RID: 42898 RVA: 0x002AF058 File Offset: 0x002AD258
			// (set) Token: 0x0600A793 RID: 42899 RVA: 0x002AF080 File Offset: 0x002AD280
			public unsafe int __1__state
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___1__state);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___1__state)) = value;
				}
			}

			// Token: 0x170038A1 RID: 14497
			// (get) Token: 0x0600A794 RID: 42900 RVA: 0x002AF0A4 File Offset: 0x002AD2A4
			// (set) Token: 0x0600A795 RID: 42901 RVA: 0x002AF0D8 File Offset: 0x002AD2D8
			public unsafe Il2CppSystem.Object __2__current
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___2__current);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new Il2CppSystem.Object(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___2__current), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x170038A2 RID: 14498
			// (get) Token: 0x0600A796 RID: 42902 RVA: 0x002AF100 File Offset: 0x002AD300
			// (set) Token: 0x0600A797 RID: 42903 RVA: 0x002AF134 File Offset: 0x002AD334
			public unsafe RuntimeCameraDetector __4__this
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___4__this);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new RuntimeCameraDetector(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._ArrayOfCamerasDelayedUpdater_d__4.NativeFieldInfoPtr___4__this), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x04007046 RID: 28742
			private static readonly IntPtr NativeFieldInfoPtr___1__state;

			// Token: 0x04007047 RID: 28743
			private static readonly IntPtr NativeFieldInfoPtr___2__current;

			// Token: 0x04007048 RID: 28744
			private static readonly IntPtr NativeFieldInfoPtr___4__this;

			// Token: 0x04007049 RID: 28745
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Int32_0;

			// Token: 0x0400704A RID: 28746
			private static readonly IntPtr NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0;

			// Token: 0x0400704B RID: 28747
			private static readonly IntPtr NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0;

			// Token: 0x0400704C RID: 28748
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0;

			// Token: 0x0400704D RID: 28749
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0;

			// Token: 0x0400704E RID: 28750
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0;
		}

		// Token: 0x02000667 RID: 1639
		[ObfuscatedName("MTAssets.UltimateLODSystem.RuntimeCameraDetector/<CurrentCameraOnScreenDetector>d__5")]
		public sealed class _CurrentCameraOnScreenDetector_d__5 : Il2CppSystem.Object
		{
			// Token: 0x0600A798 RID: 42904 RVA: 0x002AF15C File Offset: 0x002AD35C
			[CallerCount(350)]
			[CachedScanResults(RefRangeStart = 11975, RefRangeEnd = 12325, XrefRangeStart = 11975, XrefRangeEnd = 12325, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe _CurrentCameraOnScreenDetector_d__5(int <>1__state)
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr))
			{
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref <>1__state;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr__ctor_Public_Void_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}

			// Token: 0x0600A799 RID: 42905 RVA: 0x002AF1BC File Offset: 0x002AD3BC
			[CallerCount(5874)]
			[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5898, XrefRangeStart = 24, XrefRangeEnd = 5898, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_IDisposable_Dispose()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x0600A79A RID: 42906 RVA: 0x002AF200 File Offset: 0x002AD400
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655326, XrefRangeEnd = 655330, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe bool MoveNext()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}

			// Token: 0x170038A8 RID: 14504
			// (get) Token: 0x0600A79B RID: 42907 RVA: 0x002AF250 File Offset: 0x002AD450
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7527, RefRangeEnd = 7537, XrefRangeStart = 7527, XrefRangeEnd = 7537, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A79C RID: 42908 RVA: 0x002AF2A8 File Offset: 0x002AD4A8
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 655330, XrefRangeEnd = 655335, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_Collections_IEnumerator_Reset()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x170038A9 RID: 14505
			// (get) Token: 0x0600A79D RID: 42909 RVA: 0x002AF2EC File Offset: 0x002AD4EC
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7527, RefRangeEnd = 7537, XrefRangeStart = 7527, XrefRangeEnd = 7537, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A79E RID: 42910 RVA: 0x002AF344 File Offset: 0x002AD544
			// Note: this type is marked as 'beforefieldinit'.
			static _CurrentCameraOnScreenDetector_d__5()
			{
				Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<RuntimeCameraDetector>.NativeClassPtr, "<CurrentCameraOnScreenDetector>d__5");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr);
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___1__state = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, "<>1__state");
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___2__current = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, "<>2__current");
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___4__this = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, "<>4__this");
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr__ctor_Public_Void_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, 100676263);
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, 100676264);
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, 100676265);
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, 100676266);
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, 100676267);
				RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5>.NativeClassPtr, 100676268);
			}

			// Token: 0x0600A79F RID: 42911 RVA: 0x0000A74C File Offset: 0x0000894C
			public _CurrentCameraOnScreenDetector_d__5(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x170038A5 RID: 14501
			// (get) Token: 0x0600A7A0 RID: 42912 RVA: 0x002AF424 File Offset: 0x002AD624
			// (set) Token: 0x0600A7A1 RID: 42913 RVA: 0x002AF44C File Offset: 0x002AD64C
			public unsafe int __1__state
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___1__state);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___1__state)) = value;
				}
			}

			// Token: 0x170038A6 RID: 14502
			// (get) Token: 0x0600A7A2 RID: 42914 RVA: 0x002AF470 File Offset: 0x002AD670
			// (set) Token: 0x0600A7A3 RID: 42915 RVA: 0x002AF4A4 File Offset: 0x002AD6A4
			public unsafe Il2CppSystem.Object __2__current
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___2__current);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new Il2CppSystem.Object(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___2__current), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x170038A7 RID: 14503
			// (get) Token: 0x0600A7A4 RID: 42916 RVA: 0x002AF4CC File Offset: 0x002AD6CC
			// (set) Token: 0x0600A7A5 RID: 42917 RVA: 0x002AF500 File Offset: 0x002AD700
			public unsafe RuntimeCameraDetector __4__this
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___4__this);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new RuntimeCameraDetector(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(RuntimeCameraDetector._CurrentCameraOnScreenDetector_d__5.NativeFieldInfoPtr___4__this), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x0400704F RID: 28751
			private static readonly IntPtr NativeFieldInfoPtr___1__state;

			// Token: 0x04007050 RID: 28752
			private static readonly IntPtr NativeFieldInfoPtr___2__current;

			// Token: 0x04007051 RID: 28753
			private static readonly IntPtr NativeFieldInfoPtr___4__this;

			// Token: 0x04007052 RID: 28754
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Int32_0;

			// Token: 0x04007053 RID: 28755
			private static readonly IntPtr NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0;

			// Token: 0x04007054 RID: 28756
			private static readonly IntPtr NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0;

			// Token: 0x04007055 RID: 28757
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0;

			// Token: 0x04007056 RID: 28758
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0;

			// Token: 0x04007057 RID: 28759
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0;
		}
	}
}
