更新到 Unity 2019.3 后无法编译 Unity WebGL

Posted

技术标签:

【中文标题】更新到 Unity 2019.3 后无法编译 Unity WebGL【英文标题】:Unable to compile Unity WebGL after updating to Unity 2019.3 【发布时间】:2020-02-04 23:21:48 【问题描述】:

我有一个 Unity 2019.2 项目,我刚刚更新到 Unity 2019.3,打开项目时编辑器中没有错误,我什至可以以 .exe 形式构建到 Windows 设备。所以我开始开发一些功能,一切都很好,它仍然在 Windows 上构建。所以我尝试将我的平台切换到 WebGl。一切似乎都很好,我什至可以运行我的项目。但是一旦我点击构建,我就会收到以下错误:(每个错误由一行分隔)

Library\PackageCache\com.unity.xr.legacyinputhelpers@2.0.2\Runtime\TrackedPoseDriver\TrackedPoseDriver.cs(185,13): error CS1069: The type name 'PoseData' could not be found in the namespace 'UnityEngine.XR.Tango'. This type has been forwarded to assembly 'UnityEngine.ARModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' Enable the built in package 'AR' in the Package Manager window to fix this error.

Library\PackageCache\com.unity.xr.legacyinputhelpers@2.0.2\Runtime\TrackedPoseDriver\TrackedPoseDriver.cs(186,17): error CS0103: The name 'TangoInputTracking' does not exist in the current context

Library\PackageCache\com.unity.xr.legacyinputhelpers@2.0.2\Runtime\TrackedPoseDriver\TrackedPoseDriver.cs(186,91): error CS0103: The name 'PoseStatus' does not exist in the current context

Error building Player because scripts have compile errors in the editor

Build completed with a result of 'Failed'
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

UnityEditor.BuildPlayerWindow+BuildMethodException: Error building Player because scripts have compile errors in the editor
  at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x00275] in <6f28216fea9f453abf2e05b770ed3ee4>:0 
  at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in <6f28216fea9f453abf2e05b770ed3ee4>:0 
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

尝试在 WebGL 中构建后,我无法再在编辑器中运行项目,但是如果我将平台切换回 Windows,错误就会消失,我可以在编辑器中运行项目,甚至可以为 Windows 编译。但是切换回 WebGL 并尝试再次编译会破坏它。

这似乎与 Unity 2019.3 现在基于包的方式有关,但我不知道这是 UI 问题、输入系统问题还是其他任何无休止的问题。其他人可以破译错误并提供解决方案吗?

编辑:尝试在包管理器中更新 Unity XR 后,我现在收到以下错误,这次出现的错误只是切换平台而不是为它构建:

Library\PackageCache\com.unity.xr.legacyinputhelpers@2.0.6\Runtime\TrackedPoseDriver\TrackedPoseDriver.cs(188,13): error CS1069: The type name 'PoseData' could not be found in the namespace 'UnityEngine.XR.Tango'. This type has been forwarded to assembly 'UnityEngine.ARModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' Enable the built in package 'AR' in the Package Manager window to fix this error.

Library\PackageCache\com.unity.xr.legacyinputhelpers@2.0.6\Runtime\TrackedPoseDriver\TrackedPoseDriver.cs(189,17): error CS0103: The name 'TangoInputTracking' does not exist in the current context

Library\PackageCache\com.unity.xr.legacyinputhelpers@2.0.6\Runtime\TrackedPoseDriver\TrackedPoseDriver.cs(189,91): error CS0103: The name 'PoseStatus' does not exist in the current context

【问题讨论】:

嗯,它清楚地说 xr 包找不到依赖项。 @BugFinder xr 包是什么?不是我手动安装的,怎么安装呢? 你可以在 PackageManager 中找到那个包,看看我的screenshot。如果您不需要它,您可以删除它,或者您可以将该软件包更新到最新版本。 xr 默认没有安装,所以安装了它。但是正如 Ankit 所说,您可以将其从包管理器中删除 @BugFinder 我将 XR 助手更新到 2.0,6,我已经用结果更新了我的原始评论。 XR 助手有什么作用?我没有手动安装它,所以如果它安装了,那肯定是来自资产商店的东西,但我唯一认为我安装的是 Easy Notes。 【参考方案1】:

更新到 Unity 2019.3 时,Unity 自动安装了一个名为“XR Legacy Input Helpers”See Reference Image 的包,我尝试通过打开包管理器更新包来更新包,但这只会导致更多错误。

我发现删除包是可行的,因为没有人在使用它,而且我不知道为什么 Unity 甚至安装了它。如果我使用这个包虽然我不知道我会做什么。

感谢@BugFinder & 和@Ankit 帮助我找到解决问题的方法。

【讨论】:

【参考方案2】:

在我将项目从 2019.1 升级到 2019.3 后,我也遇到了一些错误

Library\PackageCache\com.unity.xr.legacyinputhelpers@2.0.6\Runtime\TrackedPoseDriver\TrackedPoseDriver.cs

与 Jhon Piper 的回答类似,我发现添加了对 com.unity.xr.legacyinputhelpers 的不必要依赖项。

我的解决方案是删除此依赖项。 您也可以手动执行此操作,而不是使用包管理器。 以下是必要的步骤:

1 - 打开项目文件夹/Packages/manifest.json

2 - 你会看到这样的:


  "dependencies": 
    "com.unity.2d.sprite": "1.0.0",
    "com.unity.2d.tilemap": "1.0.0",
    "com.unity.ads": "2.0.8",
    ...
  

3 - 在此文件中,删除提及包 com.unity.xr.legacyinputhelpers 的行并保存文件。

【讨论】:

以上是关于更新到 Unity 2019.3 后无法编译 Unity WebGL的主要内容,如果未能解决你的问题,请参考以下文章

Unity用户手册2019.3(中文版)1.3.2 资源包

unity热更新新方案,ILRuntime

Unity用户手册2019.3(中文版)1.3.1 常见资源类型

Unity用户手册2019.3(中文版)1.3.1 常见资源类型

Unity用户手册2019.3(中文版)1.3.1 常见资源类型

Unity用户手册2019.3(中文版)前言