¿Unity actual de 64 bits sigue siendo compatible con archivos DLL nativos de 32 bits (x86)?
Tengo una DLL x86 grande con una buena API de C y un archivo de interoperabilidad en C# que funciona perfectamente, excepto en Unity. He configurado todas las opciones que puedo encontrar en x86 y he intentado ponerlo en Plugins/x86.
O simplemente no encuentra el DLL, o lo encuentra y se queja de que necesito convertirlo a 64 bits. Pero no puedo hacer eso.
O (a) en algún lugar hay un factor clave que me falta o (b) no se puede hacer y mi proyecto está muerto. ¿Cuál es? Un poco de código de muestra o un tutorial ayudaría. Estoy fuera de las ideas.
La clave de mi pregunta es que solo se trata de Unity, no del problema general de x64 frente a x86. Las otras preguntas son irrelevantes.
Y la respuesta es: no, no puede usar una DLL de 32 bits en el editor de Unity, pero sí, puede usar DLL de 32 bits en una compilación de Unity con un objetivo x86. Unity le permite proporcionar varias DLL para diferentes plataformas, pero para el Editor tiene que ser de 64 bits.
Creo que es una pregunta razonable y una respuesta útil, que no he visto en otra parte. No creo que deba estar cerrado.
Un ejecutable de 64 bits no puede llamar a un dll de 32 bits y viceversa. Por lo tanto, no puede usar complementos de 32 bits para el editor de Unity porque el editor solo está disponible como una plataforma de 64 bits.