Невозможно скомпилировать Unity WebGL после обновления до Unity 2019.3 - PullRequest
2 голосов
/ 05 февраля 2020

У меня есть проект Unity 2019.2, который я только что обновил до Unity 2019.3, в редакторе не было ошибок при открытии проекта, я даже могу собрать на Windows устройства в формате .exe просто отлично. Поэтому я начал разрабатывать некоторые функции, все было хорошо, он все еще основывается на Windows. поэтому я пытаюсь переключить свою платформу на WebGl. все вроде бы нормально, я даже могу запустить свой проект. Но как только я нажимаю на build, я получаю следующие ошибки: (Каждая ошибка отделена линией)

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 теперь основан на пакетах, но я не могу сказать, если это проблема пользовательского интерфейса, введите системная проблема, или любое другое количество бесконечных проблем. Может кто-нибудь еще расшифровать ошибки и предложить решение?

Редактировать: После попытки обновить 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

Ответы [ 2 ]

2 голосов
/ 06 марта 2020

После того, как я обновил проект с 2019.1 до 2019.3, я также получил ошибки относительно

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

Подобно ответу Джона Пайпера, я обнаружил, что добавлена ​​ненужная зависимость к com.unity.xr.legacyinputhelpers.

Для меня было решение удалить эту зависимость . Вместо использования менеджера пакетов вы также можете сделать это вручную. Вот необходимые шаги для этого:

1 - Открыть папка проекта / Пакеты / манифест. 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, и сохраните файл.

2 голосов
/ 06 февраля 2020

Так или иначе, при обновлении до Unity 2019.3 кажется, что Unity автоматически установил пакет под названием «XR Legacy Input Helpers» См. Справочное изображение , я попытался обновить пакет, открыв Диспетчер пакетов, обновив пакет , однако это просто вызвало больше ошибок.

Я обнаружил, что удаление пакета работало, так как ничего не использовало его, и я не знаю, почему Unity даже установил его. Если бы я использовал этот пакет, хотя я не знаю, что бы я сделал.

Спасибо @BugFinder & и @Ankit за помощь в поиске решения моих проблем.

...