Unity WebGL билд выдаёт странные ошибки, которых нет, если запускать в редакторе

У меня проблема в том, что в Unity редакторе работает всё нормально, а как компилирую билд в webgl появляются разные ошибки, которых в редакторе нету. Если одну из ошибок беру в try catch, то появляется другая (например ошибка nullreferencе) и в итоге игра не запускаться, из за того что ошибки происходят в основных методах игры. Ещё очень большая проблема отладки этих ошибок в том, что у меня юнити по какой то причине билд делает 10минут+.

Вот пример одной из них, самое главное строка где это происходит вообще не понятно:

ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00000] in <00000000000000000000000000000000>:0 
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <00000000000000000000000000000000>:0 
  at WarReborn.Game.NewGame () [0x00000] in <00000000000000000000000000000000>:0 
  at WarReborn.Game..ctor (WarReborn.Wrapper wnd) [0x00000] in <00000000000000000000000000000000>:0 
  at WarReborn.Wrapper.InitGame () [0x00000] in <00000000000000000000000000000000>:0 
  at WarReborn.Wrapper+<StartMenuClosed>d__26.MoveNext () [0x00000] in <00000000000000000000000000000000>:0 
  at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine] (TStateMachine& stateMachine) [0x00000] in <00000000000000000000000000000000>:0 
  at WarReborn.Wrapper.StartMenuClosed () [0x00000] in <00000000000000000000000000000000>:0 
  at WarReborn.Wrapper.Start () [0x00000] in <00000000000000000000000000000000>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <00000000000000000000000000000000>:0 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_0 (System.Object state) [0x00000] in <00000000000000000000000000000000>:0 
  at System.Threading.SendOrPostCallback.Invoke (System.Object state) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.UnitySynchronizationContext.Exec () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.UnitySynchronizationContext.ExecuteTasks () [0x00000] in <00000000000000000000000000000000>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.WorkRequest:Invoke()
UnityEngine.UnitySynchronizationContext:Exec()
UnityEngine.UnitySynchronizationContext:ExecuteTasks()
 
(Filename: currently not available on il2cpp Line: -1)

Ответы (1 шт):

Автор решения: MSReturn

Это сообщение об ошибке указывает на исключение "ArgumentOutOfRangeException" в вашем коде. Это исключение возникает, когда индекс используется для доступа к коллекции (например, массиву или списку) с недопустимым значением: отрицательным или выходящим за пределы диапазона элементов в коллекции. Ошибка в методе NewGame() в классе WarReborn.Game. где есть определенная строка или операция, вызывающая эту ошибку(короче какой-то из методов или массивов не принимает этот индекс(тип он = null или что-то другое)) Если будет код , то будет более понятнее) (Скорее всего VisualStudio не видит ошибки в отличии от Unity (т.к считает что значение присвоено , но видимо значение не соответствует)

→ Ссылка