我试过把基本的dll放到unity的资产文件夹中——结果是:“废话会导致unity崩溃错误。”
我尝试手动添加引用-结果:unity在编辑器刷新时随时刷新其引用,因此毫无价值。
我尝试过使用nuget-result:closest成功安装,因为它可以处理所有依赖项等等,但是我得到:assets/scripts/developing/talktodb.cs(3,7):error cs0246:找不到类型或命名空间名称“mysql”。是否缺少程序集引用?
它是“使用nuget然后将dll复制到资产中”的某种组合还是类似的冗余?因为这大概是我最好的猜测了。
另外,我也尝试过几个旧版本的nuget包,但都没有用。同样,mysql.data被列在“assembly csharp”的引用下,我的unity被设置为4.x framework,使用的是unity最新的2018.2.5f1(64位)(我真的希望我不必放弃4.x就可以工作了。。。我将错过初始化属性的值…)
1条答案
按热度按时间4bbkushb1#
幸运的是我遇到了这个:
如何让mysql connector/net与unity 2017协同工作
关于安全问题。我的关键是,我的任何会话都不应该从.net持久化-将有用于更改数据和任何有关提升权限的高级php脚本。
参考:为什么不应该将移动应用程序连接到数据库
除此之外,
规则的例外。
“一些数据库供应商可能提供了连接到远程数据库的驱动程序,但到目前为止,我还不知道有什么驱动程序。
其他例外包括odbc连接。例如,我听说开发人员在用java开发应用程序时能够(或者至少尝试)使用jdbc连接到mysql数据库。实际上,这与直接使用二进制驱动程序连接并不完全相同,但是,它很接近……-2
这正是我将要做的,使用mysql连接器与mysql驱动程序对话(我现在太累了,想不起它的名字了(也许它是基于odbc的?我不记得了。因此谷歌。哈哈)
总之,使用上面提供的链接,Unity2018可以与最新的mysql连接器兼容。
任何assets文件夹都必须包含:system.data.dll和mysql.data.dll(仅此而已)
不需要nuget。
但是错误消息:“加载脚本程序集'assets/plugins/mysql/system.data.dll'失败!”到目前为止,它显然还不能像unity之外的普通c语言那样引用app.config中的connectionstring。话虽如此,我正在努力寻找unity的app.config实现,或者一个等效的替代方案。
更新:
除了unity中几个恼人的dll加载错误之外,这些错误不会影响任何东西——除了让我恼火和浪费几字节的ram一秒钟(lol,y'kno.);所有的工作都很好,我记得我之所以不关心将我的应用程序直接连接到我的数据库,是因为用户将拥有的唯一权限是execute权限,所以所有的过程都将存储在服务器上(通过存储过程),从而保护数据库免受任何潜在的攻击,即使是咳嗽当一个用户决定“反编译”时(这是一个单词。。。?嘿)我的申请。
最终更新:
正如我在这里发布的;
我花了一个星期才弄明白。。。
您需要使用:
从c:\program files\unity\editor\data\mono\lib\mono\2.0
不是流血的小路。然后它将在没有错误的情况下工作[并且在构建中]。。。在最新的unity 2018.2.14f1中确认放入资产文件夹-同时项目需要设置为.net 4.0