Fat*_*tie 3 macos xcode unity-game-engine unity3d-native-plugins
使用本地低级插件.. Mac版本获取Unity项目。
在Xcode插件项目中进行少量更改,然后进行构建。
现在,您在Unity项目中有了新的插件库。
如果再次“构建”,当然,最终的Mac应用程序现在将包含新库-没问题。
如果您在编辑器中点击播放,
实际上似乎:
已经尝试了所有操作,例如“重新导入所有资产”,AssetDatabase.Refresh,重命名等。看来您实际上必须重新启动Unity。
这有什么关系?
看来mac共享库/捆绑包无法卸载。文章:
https://docstore.mik.ua/orelly/unix3/mac/ch05_03.htm
显然,此问题已在10.5中修复:
也许Unity现在可以解决这个问题。按照他们通常的节奏,它应该在2035年左右的任何时候发生。
可悲的是,这归结于您对此无能为力。
根据.net的DLL处理,如果不关闭应用程序域,则无法单独卸载DLL。当Unity拾取对DLL所做的更改时,旧版本将保留在内存中,并在运行时在编辑器中使用。您可以通过在编辑器中删除本机插件来执行此操作,以使其“有趣”。确认要删除文件。该文件将从检查器中消失。但是,如果右键单击该文件夹并刷新(ctrl + r),您将看到文件已重建(在单击“全部重新导入”时也会发生此情况,因为尽管统一重启,但应用程序域未关闭)。
但是,在构建应用程序时,它将使用本地存储的文件,而不是内存存储的文件。因此,插件将在构建中进行更新。
如果不卸载包含该程序集的所有应用程序域,则无法卸载该程序集。即使程序集超出范围,实际的程序集文件也将保持加载状态,直到包含该程序集的所有应用程序域都被卸载为止。
这已经有一段时间了,人们已经尝试解决和/或修复问题,但是据我所知,目前存在的“解决方法”仅适用于Windows。这里是一些有关此讨论的链接。
我想的东西,可以做的是写一个包装,当DLL已经被编辑会自动重新启动统一......虽然这不会解决的问题,它会ATLEAST让它有点麻烦少。