为什么Unity3d不支持System.Numerics

1、问题:

平台:Unity3d 2017.3.1 语言:C#
因为需要引用System.Numerics,但Unity的解决方案项目不支持直接引用dll
所以我从C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6
下找到System.Numerics.dll导入到Assets中,出现了一个报错。(我已在Edit - Project Settings - Player - Other Settings将Script Runtime Version选择为.Net 4.6版本)

2、代码:

clipboard.png
可以看见System.Numerics.BigInteger类可以运转,但是这个报错的dll,似乎会影响到我其他代码。

3、报错信息:

clipboard.png

4、尝试过哪些方法:

我尝试过使用.Net 3.5下的System.Numerics.dll放至Assets中。
目前还没有解决。

5、感谢

C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFramework

在这个目录下可以找到System.Numerics,有兴趣的可以导入到Unity,寻找问题所在。

阅读 5k
1 个回答
✓ 已被采纳新手上路,请多包涵

可以从<Unity安装目录>\Editor\Data\MonoBleedingEdge\lib\mono\4.5中获取System.Numerics.dll和SystemNumerics.Vectors.dll两个文件。

将它们粘贴到Unity Asset文件夹中。

貌似这样就解决了,原因估计是Unity3d不能直接支持.Net Framework的dll吧,这些目录下的Dll是由Mono Developer开发的。

附加步骤:

创建两个文本文件,mcs.rsp and csc.rsp,将下列文字都放入其中。

-r:System.Numerics.dll -r:System.Numerics.Vectors.dll
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进