防止Unity抛出关于需要专业版本来使用我没有使用的特定功能的构建错误
本文关键字:Unity 功能 错误 构建 于需 专业版 本来 防止 出关 | 更新日期: 2023-09-27 18:16:30
到目前为止我所发现的
我使用c#和Unity来制作一个简单的游戏。当我尝试为Android构建这款游戏时,我得到了这个错误:
Error building Player: SystemException: 'System.Net.Sockets' are supported only with Unity Android Pro. Referenced from assembly 'Mono.Data.Tds'.
我的意思是,我需要购买Android Pro许可证来制作一款使用System.Net.Sockets
的游戏。这一开始让我很困惑,因为我根本不记得使用过System.Net.Sockets
。经过一些研究,我发现using
在Unity c#项目的广泛范围导致这个错误,在我的情况下,我正在做:
using System;
通过代理包含System.Net.Sockets
使Unity认为我在使用它。
我现在在我的游戏中使用一些开源库。当我在实现这些库之后去为Android构建时,我得到了同样的错误。然后我继续查看这些库的源代码,似乎在每个文件中作者都这样做了:
using System;
这是导致第一部分错误的原因。这些库也没有使用System.Net.Sockets
,但却受到using
的影响。
有没有办法让Unity认识到我实际上没有使用System.Net.Sockets
,所以它不让我购买Android Pro?
编辑
在做了@Roberto的建议之后,我删除了所有的库,然后开始添加它们,直到我得到错误。我已经确定Json。NET是罪魁祸首,正在用System.Net.Sockets
做一些事情。然而,当我搜索' System.Net.Sockets
'或' 'Mono.Data.Tds
'的来源时,没有结果。
这是不对的,添加using System
将不会扩展到System.Net.Sockets
。这没有多大意义,否则几乎所有游戏都不可能在Unity上免费运行。
事情是你的代码或插件使用System.Net.Sockets
。它可能是一个库(dll),但肯定有什么东西在使用它。
您可以通过使用using System
创建一个新项目的脚本来测试我的声明,并看到您不会有问题;另外,你可能想创建一个新项目,并越来越多地添加你正在使用的插件,以检查哪个正在使用System.Net.Sockets
。
我刚刚读到这是发生在Unity 3.5.6。你在用这个版本吗?如果是的话,你就不能更新到Unity 4吗?我使用的是Unity 4,所以没有这个问题。还有3.5.7版本可以试试