You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下Unity使用ImageMagick遇DllNotFoundException问题求助

MacOS Unity中Magick.NET缺失原生库问题解决

错误根源

出现DllNotFoundException: Magick.Native-Q16-x64.dll是因为只导入了Magick.NET的托管DLL,而Magick.NET依赖对应平台的原生ImageMagick库——MacOS下是.dylib格式,不是Windows的.dll文件。

修复步骤

  1. 下载对应MacOS的原生库
    针对你使用的Q16-x64版本,下载带Native后缀的Magick.NET包(如Magick.NET-Q16-x64.Native),解压后得到一系列.dylib格式的原生库文件。

  2. 正确放置到Unity目录

    • 在项目的Assets/Plugins文件夹下新建macOS子文件夹(Unity会自动识别该平台目录)
    • 将所有解压得到的.dylib文件放入Assets/Plugins/macOS
    • 选中这些.dylib文件,在Inspector面板设置:
      • 平台选择macOS
      • CPU架构勾选x86_64(M系列芯片的Mac可额外勾选ARM64,依Unity版本支持情况而定)
      • 勾选Include in Build,取消Editor Only选项
  3. 调整PDF转换代码
    PDF转换需要先设置分辨率再加载文件,修正代码如下:

    public void Convertir(string pdf, string png)  
    {      
        using (var settings = new MagickSettings())
        {
            settings.Density = new Density(300); // 先设置分辨率
            using (var image = new MagickImage(pdf, settings))
            {
                image.Write(png);
            }
        }
    }
    

    另外,MacOS下需确保Ghostscript可用:可通过Homebrew执行brew install ghostscript安装,或把Ghostscript的原生库也放入Plugins/macOS目录。

  4. 匹配Unity的.NET版本
    打开Edit > Project Settings > Player > Other Settings,将Scripting Runtime Version设置为.NET 4.x Equivalent,保证与Magick.NET的版本兼容。

注意事项

  • Magick.NET的托管库和原生库版本必须完全一致,不能混用不同版本
  • M系列芯片的Mac需确认下载的原生库支持ARM64架构,或切换Unity为Rosetta模式运行

内容的提问来源于stack exchange,提问作者HugoD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:43:26