美文网首页
unity webgl 使用webp

unity webgl 使用webp

作者: taiyosen | 来源:发表于2023-05-25 15:36 被阅读0次

    环境

    Unity 2019.4.18f1

    第三方插件

    unity.webp@0.3.9
    https://github.com/netpyoung/unity.webp

    问题

    导入后C#报错:

    the name "unsafe" does not exist in the current context
    

    查看https://github.com/netpyoung/unity.webp/blob/master/unity_project/Packages/manifest.json
    发现插件依赖于org.nuget.system.runtime.compilerservices.unsafe@6.0.0,应该是与我这个版本的unity的unsafe版本不一致

    解决方法一

    升级unity版本,不过我没测试过哪个版本可以,你可以试试2022.2

    解决方法二

    从NuGet下载对应版本的dll:
    https://www.nuget.org/packages/System.Runtime.CompilerServices.Unsafe/6.0.0
    点击右侧的Download Package或者直接下载:
    https://www.nuget.org/api/v2/package/System.Runtime.CompilerServices.Unsafe/6.0.0
    将下载下来的system.runtime.compilerservices.unsafe.6.0.0.unpkg重命名为system.runtime.compilerservices.unsafe.6.0.0.zip,解压后,将其中的lib/{xxx}/System.Runtime.CompilerServices.Unsafe.dll放入你的工程中。
    {xxx}视你的项目project setting而定。

    进一步的问题

    假如你使用了微信小游戏插件,那上面这个做法会带来另外的报错,因微信小游戏插件也依赖System.Runtime.CompilerServices.Unsafe.dll。解决方法是不要按上面说法把下载下来的dll放入工程中,而是直接将微信小游戏插件里的dll挪出来作为公共库,即将Assets/WX-WASM-SDK/Editor/TextureEditor/Release/System.Runtime.CompilerServices.Unsafe.dll和对应的xml文件一起挪出来放到Assets/Plugins/xxx里。此时unity会有个新的报错:

    Assembly 'Assets/WX-WASM-SDK/Editor/TextureEditor/Release/SixLabors.ImageSharp.dll' will not be loaded due to errors:
    Reference has errors 'System.Memory'.
    
    Assembly 'Assets/WX-WASM-SDK/Editor/TextureEditor/Release/System.Memory.dll' will not be loaded due to errors:
    System.Memory references strong named System.Runtime.CompilerServices.Unsafe Assembly references: 4.0.4.1 Found in project: 5.0.0.0.
    Assembly Version Validation can be disabled in Player Settings "Assembly Version Validation"
    

    按照提示,在Player Settings里关闭Assembly Version Validation即可。

    相关文章

      网友评论

          本文标题:unity webgl 使用webp

          本文链接:https://www.haomeiwen.com/subject/tfnmsdtx.html