Zenject в Unity при сборке в IL2CPP не умеет в Vector3

То ли со структурами не хочет работать, то ли именно с Vector3. При сборке в IL2CPP в рантайме AOT при попытке тип вывести вылетает ExecutionEngineException.

// С вектором не работает фабрика. Container.BindFactory<Vector3, Sprite, VFXBossHit, VFXBossHit.Factory>().FromMonoPoolableMemoryPool // Но с Трансформом уже всё ок. Container.BindFactory<Transform, Sprite, VFXBossHit, VFXBossHit.Factory>().FromMonoPoolableMemoryPool​

Особенно не разбирался в причинах, пока просто на Transform поменял. Но интересно, всё же, что именно не так.

Может кто-то сталкивался с этим?

33
11 комментариев

Наверняка из-за того, что структура
Какие причины там ещё могут быть, шарп вообще специфически с ними работает

1
Ответить

Я просто либо кривой смотрел, либо в документации это не упоминается. И вот это странно.
В редакторе то оно работает. Падает именно на девайсах, т.к. там уже AOT работает =/

1
Ответить

Это Zenject в BindFactory не умеет в качестве параметров передавать struct. Ловил точно такой же случай, поменял на класс просто.

1
Ответить

Ага. В итоге тоже на классы переписал)

1
Ответить

Комментарий недоступен

1
Ответить

Ты путаешь обычный код и шейдеры

Ответить