我正在寻找在 Unity3D 中使用 System.Drawing 的替代方案,因为显然 Unity 不支持它。我想简单地在纹理上画一些线。但我想要诸如线宽和边缘圆角之类的选项,这些选项相当复杂。 GraphicsMagick 看起来很完美,而且它是免费的。
这是我已经采取的步骤:
1) 我将播放器设置更改为使用 api 兼容性级别 2.0,而不是“子集”。
2)我下载了GraphicsMagick .Net 2.0 x64 包装器 https://graphicsmagick.codeplex.com/,提取dll。
3)在Windows资源管理器中右键单击该dll,选择属性,然后解锁该dll。
4)将dll放入我的assets/plugins文件夹中。
5)从\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0文件夹中取出System.Drawing dll,并将其放入我的assets/plugins文件夹中。
6)在我的项目引用(Visual Studio 2015)中添加了对这两个 dll 的引用。
7) 在我的 c# 脚本中添加了“using GraphicsMagick”。
它在 Visual Studio 2015 中编译得很好,没有错误。但当我切换回 Unity 时,它说:
Assets/_GeoSphere/_ScriptsCS/DrawLineUV.cs(5,7): error CS0246:
The type or namespace name `GraphicsMagick' could not be found.
Are you missing a using directive or an assembly reference?
另外,unity 似乎从我的项目引用中删除了对 GraphicsMagick 的引用。
因此,在对这个问题进行了大量研究之后,我开始认为这个问题与 dll 是非托管/本机这一事实有关。我正在免费使用 Unity 5,但据我了解,它现在支持本机 dll。
我只想画一条平滑、宽、圆边的线!我不介意贝塞尔曲线。如果有人知道如何让 GraphicsMagick 在 Unity3D 中工作,即使过程相当复杂,请详细说明。谢谢。 :)