Почему он компилируется с другим типом?

Ошибка:

IL2CPP error for type 'Namespace.SubNamespace.MyClass/<MyIEnumeratorFunc>d__20' in assembly 'PathMyUnityProjectTempStagingAreaDataManagedVisualStudioSolutionName.dll'
Additional information: Interface System.Collections.Generic.IEnumerator`1<System.Object> method T System.Collections.Generic.IEnumerator`1<System.Object>::get_Current() not implemented on non-abstract class Namespace.SubNamespace.MyClass/<MyIEnumeratorFunc>d__20

Unity ожидает System.Collections.IEnumerator, и я пытаюсь использовать IEnumerator:

  1. Я пытался писать напрямую

    private System.Collections.IEnumerator MyIEnumeratorFunc(){}
    
  2. Я пытался удалить

    using System.Collections.Generics;
    

    и добавьте его к каждой записи списка / словаря. Все работает в редакторе, но я получаю сообщение об ошибке, описанное выше: похоже, он пытается использовать System.Collections.GENERICS.IEnumerator.

Кроме того, ошибка исчезает, если я использую исходный код (не .dll)

Кроме того, вы можете воспроизвести его, создав .dll с помощью любой функции IEnumerator / async (даже пустой) и собрав ее для iOS.

Всего 1 ответ


Проблема была в названии проекта. Решение

  1. Щелкните правой кнопкой мыши имя проекта (не имя решения) в обозревателе решений.

  2. свойства

  3. Вкладка «Приложение»

  4. Имя сборки -> установить то же самое имя файла .dll (без ".dll")


Есть идеи?

10000