поэтому я новичок в Unity и пытался протестировать сцену со сценарием, прикрепленным к персонажу. Однако он продолжает говорить: «Связанный сценарий не может быть загружен. Пожалуйста, исправьте все ошибки компиляции и назначьте действительный сценарий». В нем также говорится, что имя файла может отличаться от имени в коде, но это не так, а также говорится, что в коде могут отсутствовать скрипты MonoBehaviour. Он даже не позволяет мне прикреплять скрипт к персонажам, потому что он не может найти класс скрипта.
Я скопировал и загрузил коды движения персонажей из Интернета, но они тоже не работали. Я также пытался удалить и заново создать файлы CS, но это тоже не помогло. Даже добавление пустых скриптов к символам не сработало, если я не сделал это из «Добавить компонент»
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Movement : MonoBehaviour { SpriteRenderer sprite; Rigidbody2D rigid; // Start is called before the first frame update void Start() { sprite = GetComponent(); rigid = GetComponent(); } private void FixedUpdate() { if (Input.GetKey('d')) rigid.velocity = new Vector2(2, 0); else if (Input.GetKey('a')) rigid.velocity = new Vector2(-2, 0); } }
В Unity также есть эти ошибки, если это помогает



- Комментарии не подлежат расширенному обсуждению; этот разговор был перемещен в чат.
- Эта ошибка теперь находится в официальном трекере проблем Unity. issueetracker.unity3d.com/issues/…
Unity явно не может обрабатывать апострофы (одинарные кавычки ') в названии каталога редактора. Вам нужно избавиться от апострофа в имени вашего каталога. После того, как вы внесете это изменение, Unity сможет создавать сценарии, как задумано.
- Есть ли другие персонажи, которые могли это вызвать? Я надеялся найти это, поскольку у проекта действительно была куча файлов с апострофами в пути (из плагина — «NatureManufacture Assets»), но удаление их перед импортом проекта, похоже, не устранило проблему.
- К сожалению, никакой радости. Спасибо за предложение. Это сводит меня с ума — тот же проект отлично работает на моей рабочей машине (и на машинах всех моих коллег), но я не могу заставить Unity импортировать его на мой домашний ноутбук (на котором отлично работает куча других рабочих проектов).
Во-первых, рекомендуется использовать «Добавить компонент» для создания скрипта, если вы хотите прикрепить его к GameObject, поскольку он автоматически импортирует необходимые библиотеки. Реализация MonoBehaviour необходима для добавления скрипта в GameObject.
Во-вторых, FixedUpdate () не следует устанавливать как private, ему не нужен модификатор доступа, как и Start (), см. Https://docs.unity3d.com/ScriptReference/MonoBehaviour.FixedUpdate.html.
В-третьих, ошибки на первом снимке экрана, похоже, указывают на проблему с установкой Unity. Попробуйте переустановить его и убедитесь, что устанавливаемый вами редактор соответствует вашей операционной системе (64- или 32-разрядная?).
В-четвертых, второй снимок экрана отображается, когда вы используете какие-либо устаревшие библиотеки или классы, что, похоже, не относится к сценарию, которым вы поделились.
Надеюсь, это поможет.
- «Во-вторых, FixedUpdate () не следует устанавливать как частный, ему не нужен модификатор доступа, как и Start (), см. Docs.unity3d.com/ScriptReference/MonoBehaviour.FixedUpdate.html». Это неверно. Отсутствие модификатора доступа делает его закрытым, что и следует сделать по умолчанию (потому что обычно он не должен вызываться явно извне класса), если только кто-то не намеревается переопределить, и в этом случае он должен быть защищен виртуальным. Если кто-то решит сделать эту частную природу явной, добавив ключевое слово, то это чисто вопрос стиля.
Я думаю, что ваше имя класса отличается от имени файла.
Это в основном из-за того, что вы удалили какой-то скрипт, переименовали его или ухудшили версию Unity. возможно, вам придется переназначить скрипт на требуемую позицию / компонент.
Примечание. Убедитесь, что имя класса совпадает с именем скрипта в Unity.
- У них такое же имя, и я попытался удалить сценарий и переделать его. Он всегда помещается в правильную папку. Если ты это имеешь в виду?
Tweet
Share
Link
Plus
Send
Send
Pin
В этом разделе содержится информация по следующим вопросам:
| Тип ошибки | Сообщение об ошибке: |
|---|---|
| General startup issues | — Error messages in the Package Manager window — Package Manager missing or window doesn’t open — Problems after upgrading Unity to new version — Resetting your project’s package configuration |
| Package installation issues | — Package installation fails — Packages not recognized |
| Problems installing git dependencies | — No ‘git’ executable was found — git-lfs: command not found — Repository not found — Could not read Username: terminal prompts disabled — Can’t update Git version |
|
Asset StoreA growing library of free and commercial assets created by Unity and members of the community. Offers a wide variety of assets, from textures, models and animations to whole project examples, tutorials and Editor extensions. More info See in Словарь packages (My Assets) |
— ‘Failed to parse Http response’ in My Assets context |
| Scoped registries | — Missing ‘My Registries’ in the Package Manager window |
| Issues when building packages | — Missing MonoBehaviour errors — Loading error for hostfxr.dll on Windows |
Вы также можете запустить инструмент Diagnostics диспетчера пакетов Unity, если у вас возникли проблемы, которые могут быть связаны с сетью. Дополнительную информацию см. в разделе Проблемы с сетью.
Error messages in the Package Manager window
Диспетчер пакетов отображает индикаторы ошибок в окне диспетчера пакетов при возникновении проблем:
-
Общесистемные проблемы
Сообщения об ошибках, которые появляются в строке состояния, указывают на то, что диспетчер пакетов обнаружил проблему, не связанную с конкретным пакетом. Например, если диспетчер пакетов не может получить доступ к серверу реестра пакетов, он отображает это сообщение в строке состояния:

Сообщение об ошибке сети Если ваша сеть не может подключиться к серверу реестра пакетов, возможно, это связано с проблемой подключения к сети. Когда вы или ваш системный администратор исправляете сетевую ошибку, строка состояния очищается.
Если ваше сетевое соединение работает, но вы не вошли в свою учетную запись Unity, диспетчер пакетов не не отображать пакеты Asset Store. При попытке использовать контекст My Assets диспетчер пакетов отображает ошибку в строке состояния:

Вышел из учетной записи Unity Нажмите кнопку Sign in в списке, чтобы войти в свою учетную запись Unity через Центр Unity.
-
Проблемы, связанные с пакетом
Если при загрузке или установке определенного пакета возникает проблема (например, при определении версий пакета для загрузки), значок ошибки (
) отображается в списке пакетов рядом со скомпрометированным пакетом (A). Чтобы выяснить, в чем проблема, откройте представление сведений о скомпрометированном пакете и просмотрите подробное сообщение об ошибке (B):
Сообщение об ошибке зависимости
Package Manager missing or window doesn’t open
Окно диспетчера пакетов может быть перемещено за пределы экрана или скрыто другим окном. Когда это происходит, похоже, что окно диспетчера пакетов не открылось. В этом случае вы можете попытаться сбросить макет окна (Window > Layouts > Default) и снова открыть окно диспетчера пакетов.
Если окно диспетчера пакетов по-прежнему не отображается, проверьте окно консоли Unityокно редактора Unity, в котором отображаются ошибки, предупреждения и другие сообщения, созданные Unity или вашими собственными сценариями. Подробнее
См. в Словарь:
Failed to resolve packages: The file [/Packages/manifest.json] is not valid JSON:
Unexpected token '}' at 44:1
}
Это сообщение об ошибке указывает на то, что ваш файл manifest.json имеет неверный формат. Он также сообщает вам номер строки, в которой диспетчеру пакетов не удалось проанализировать файл, чтобы вы могли исправить ошибку JSON. Существует ряд онлайн-валидаторов, которые вы можете использовать, чтобы попытаться решить проблему. Как только вы сохраните исправленный файл, Unity перезагрузит окно диспетчера пакетов.
Если вы выполнили обновление с ранней версии редактора Unity, могут возникнуть другие проблемы с вашим манифестом пакетаКаждый пакет имеет манифест, который предоставляет информацию о пакете диспетчеру пакетов. Манифест содержит такую информацию, как имя пакета, его версия, описание для пользователей, зависимости от других пакетов (если есть) и другие подробности. Дополнительная информация
См. в файле Словарь:
-
В версии 2019.3 ваш файл
manifest.jsonне должен содержать никаких ссылок на пакет com.unity.package-manager-ui. Вы можете либо сбросить конфигурацию пакета вашего проекта, либо удалить следующую строку из списка зависимостей манифеста:"com.unity.package-manager-ui": "2.1.1",
-
Проверьте, есть ли в вашем манифесте проектакаждый проект Unity манифест проекта , который действует как точка входа для диспетчера пакетов. Этот файл должен находиться в каталоге
/Packages. Диспетчер пакетов использует его для настройки многих вещей, включая список зависимостей для этого проекта, а также любой репозиторий пакетов для запроса пакетов. Дополнительная информация
См. Словарь функция «exclude» в качестве пакетной версии. Это устаревшее значение для зависимостей
См. в свойстве Словарь. Если вы найдете такие строки, удалите всю строку. Диспетчер пакетов устанавливает только те пакеты, которые явно включены в ваш проект как зависимость, поэтому после удаления этой записи диспетчер пакетов игнорирует пакет и не устанавливает его.
Если диспетчер пакетов по-прежнему не загружается, следуйте инструкциям в разделах Нераспознанные пакеты и Сброс конфигурации пакета вашего проекта.
Problems after upgrading Unity to new version
При обновлении проекта до более новой версии Unity диспетчер пакетов автоматически обновляет несовместимые пакеты до более новых совместимых версий. Однако, если ваш пакет не компилируется, диспетчер пакетов отображает сообщения об ошибках в консоли.
Чтобы исправить эти сообщения, прочтите сообщения об ошибках и устраните все возможные проблемы. Например, в пакете может отсутствовать зависимость от другого пакета или версии. В этом случае вы можете попробовать установить пакет самостоятельно.
Вы также можете попробовать следующую последовательность решений, пока не найдете то, что работает:
- Создайте резервную копию и удалите папку
Packagesв своем проекте. - Создайте резервную копию, а затем удалите исходные коды пакетов в папке
Packagesвашего проекта, оставив только файлmanifest.json. Затем попробуйте перезагрузить проект. - Создайте новый пустой проект. Если окно диспетчера пакетов загружается успешно, замените папку
Library/PackageCache/com.unity.package-manager-ui@в неудачном проекте на ту же папку из только что созданный проект. - В крайнем случае вы можете сбросить свой проект до пакета по умолчаниюUnity автоматически предварительно устанавливает выбранное количество пакетов по умолчанию (например, Analytics Library, Unity Timeline и т. д.) при создании нового проекта. Он отличается от встроенного пакета тем, что его не нужно устанавливать, и отличается от встроенного пакета тем, что расширяет возможности Unity, а не позволяет включать или отключить их.
Просмотрите в конфигурации Словарь и добавляйте обратно пакеты по одному, пока не заработает.
Resetting your project’s package configuration
Если в проекте слишком много проблем с пакетами, вы можете сбросить проект до конфигурации пакетов по умолчанию для редакторской версии Unity. Эта операция сбрасывает все пакеты в вашем проекте. Это может не устранить источник проблемы, но может помочь вам понять, в чем проблема.
Примечание. Вы не можете отменить сброс конфигурации пакета, поэтому сначала создайте резервную копию файла manifest.json или убедитесь, что ваш проект находится под управлением исходного кода. Вы также можете принять дополнительные меры предосторожности, клонировать свой проект и протестировать операцию на клоне, прежде чем продолжить.
Чтобы вернуться к конфигурации пакета по умолчанию, выберите Reset Packages to defaults в меню Help.

Resetting a clone of your project
Вы также можете протестировать возврат к пакетам по умолчанию, прежде чем вносить окончательные изменения:
-
Клонируйте свой проект, скопировав папку проекта и переименовав ее, чтобы ее было легко найти (например, если ваш проект называется
MyProject, вы можно использовать что-то вродеclone_MyProject). -
Загрузите новый клонированный проект.
-
В меню «Help» выберите Reset Packages to defaults.
В зависимости от размера вашего проекта это может занять несколько минут.
-
Убедитесь, что он успешно сбросил пакеты. Если это так, вы можете безопасно выполнить операцию в исходном проекте.
Package installation fails
Если вы пытаетесь установить новый пакет из реестра, и он не работает, это может быть связано с проблемами с правами доступа.
У вас должны быть полные права доступа к папке кеша:
- Windows:
C:UsersyournameAppDataLocalUnitycache - MacOS:
~/Users/Library/Unity/cache
Это может быть проблема с сетью. Проверьте настройки брандмауэра и прокси-сервера.
Иногда учреждения, такие как школы, государственные учреждения или защищенные сетью рабочие места, настраивают прокси-серверы для управления трафиком между сетью и Интернетом и используют собственные сертификаты сервера, которые не распознаются Unity или диспетчером пакетов. Поговорите со своим сетевым администратором.
Packages not recognized
Если вы видите много ошибок компиляции, это может означать, что Unity не распознает пакеты в вашем существующем проекте. В этом случае вам может не хватать компонента .NET.
Для Windows:
- Загрузите и установите Visual Studio 2017 версии 15.9.0 или выше с рабочей нагрузкой .NET Core cross-platform development workload, выбранной в разделе Other Toolsets.
- Загрузите и установите компонент .NET SDK v2.2.101.
Для MacOS:
-
Загрузите и установите компонент .NET SDK v2.2.101.
-
Установите все рекомендуемые обновления в Visual Studio
-
Используйте homebrew для приготовления и установки mono:
brew update
brew install mono # optional
brew upgrade mono
-
При необходимости удалите папку
Library/obj/tempв своем проекте и перезапустите Unity. -
Если вы по-прежнему испытываете трудности, попробуйте также перезагрузить компьютер.
No ‘git’ executable was found
Если вы попытаетесь установить пакет с URL-адреса git, появится сообщение, похожее на это:
Cannot perform upm operation: Unable to add package
[https://github.example.com/myuser/myrepository.git]:
No 'git' executable was found. Please install Git on your system and restart Unity [NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
git-lfs: command not found
Если вы пытаетесь загрузить пакет, использующий Git LFS (большое файловое хранилище), вы можете увидеть следующее сообщение об ошибке:
Error when executing git command. git-lfs filter-process: command not found.
Это указывает на то, что Git LFS, вероятно, не установлен на вашем компьютере. Чтобы убедиться, вы можете проверить это в командной строке:
git lfs --version
Если вы видите что-то подобное, Git LFS установлен:
git-lfs/2.8.0 (GitHub; darwin amd64; go 1.12.7)
В противном случае вы можете установить его, выполнив Bitbucket GitHub.
Repository not found
Если указать несуществующее расположение, в Консоли Unity появится сообщение, похожее на это:
Cannot perform upm operation: Unable to add package [https://mycompany.github.com/gitproject/com.mycompany.mypackage.git]:
Error when executing git command. fatal: repository 'https://mycompany.github.com/gitproject/com.mycompany.mypackage.git/' not found
[NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)
Проверьте правописание. Чтобы убедиться, что вы используете правильный URL-адрес, перейдите на страницу репозитория и скопируйте URL-адрес из кнопки «Клонировать»:

Нажмите кнопку справа от URL-адреса на GitHub (A) или GitLab (B), чтобы скопировать URL-адрес в буфер обмена.
Если расположение репозитория верное, может быть другая проблема с URL-адресом:
- Если вы настраиваете таргетинг на конкретную версию, убедитесь, что ваша версия стоит последней. Например:
https://github.example.com/myuser/myrepository1.git#revision - Если вы нацелены на ревизию, а пакет не находится в корне, убедитесь, что параметр запроса
pathпредшествует привязке ревизии. Например:
https://github.example.com/myuser/myrepository.git?path=/example/folder#v1.2.3
Could not read Username: terminal prompts disabled
Если вы пытаетесь установить пакет из частного репозитория, для которого требуется аутентификация, в консоли Unity появится сообщение, похожее на это:
Cannot perform upm operation: Unable to add package [https://mycompany.github.com/gitproject/com.mycompany.mypackage.git]:
Error when executing git command. fatal: could not read Username for 'https://mycompany.github.com': terminal prompts disabled
[NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)
Это сообщение, вероятно, связано с тем, что диспетчер пакетов не предоставляет интерактивный терминал или диалоговое окно, где вы можете ввести свое имя пользователя и пароль для HTTP или парольную фразу для разблокировки ключа SSH:
-
При использовании HTTP(S) каждый раз, когда вы входите в BitBucket, GitHub или GitLab, вам необходимо вводить имя пользователя и пароль в терминале или диалоговом окне. Однако диспетчер пакетов не предоставляет интерактивный терминал или диалоговое окно, где вы можете ввести свое имя пользователя и пароль для HTTP(S).
Чтобы избежать этого, используйте один из обходных путей, предложенных в разделе Решения для HTTPS.
-
SSH использует пару открытых и закрытых ключей SSH. Вы можете добавить свой открытый SSH-ключ в Bitbucket, GitHub или GitLab, а затем получить доступ к репозиториям без ввода имени пользователя и пароля.
Однако, если вы установили парольную фразу для обеспечения безопасности своего ключа SSH, вам все равно придется ввести эту парольную фразу в терминал или диалоговое окно, чтобы авторизовать свой ключ. В этом случае вы можете использовать агент SSH, который может разблокировать ваш ключ SSH для аутентификации в диспетчере пакетов от вашего имени.
Решения для HTTPS
Диспетчер пакетов не предоставляет интерактивный терминал или диалоговое окно, где вы можете ввести свое имя пользователя и пароль HTTP(S). Чтобы обойти это, используйте один из следующих обходных путей:
- Используйте диспетчер учетных данных (Git Credential-Manager для Windows или OSXKeyChain). Менеджеры учетных данных обрабатывают отправку пароля без использования терминала или командной строки.
- Используйте git-credential-Storage из терминала или командная строка. Затем запустите Hub с того же терминала, чтобы у Unity был доступ к кэшированным или сохраненным учетным данным.
- Вместо этого используйте SSH для аутентификации. Если вы настроили свой SSH-ключ без парольной фразы, диспетчеру пакетов не нужно его расшифровывать для аутентификации на сервере Git. Если вы решите использовать парольную фразу для дополнительной безопасности, вы все равно можете обойти проблему аутентификации, используя ssh-agent в любой из macOS или Windows.
Решения для SSH
Если вы используете протокол SSH для установки пакета по URL-адресу Git, вы можете получить ошибку аутентификации от Git. Обычно это происходит, когда вы настраиваете закрытый ключ SSH на локальном компьютере, который защищен парольной фразой.
Решение этой проблемы заключается в настройке агента SSH, который может разблокировать ваш ключ SSH для аутентификации в диспетчере пакетов от вашего имени. Следуйте инструкциям в разделе, соответствующем вашей операционной системе:
- Настройка OpenSSH для Windows
- Добавление ключей SSH в агент SSH для macOS
Настройка OpenSSH для Windows
Собственная версия OpenSSH для Windows ssh-agent работает лучше, чем версия, доступная по умолчанию с Git для Windows. Эта процедура объясняет, как настроить клиент OpenSSH и добавить свой ключ в его ssh-агент. Если вы используете Git для Windows, вы также можете отдать приоритет собственному Windows OpenSSH над агентом Git для Windows SSH:
-
Убедитесь, что клиент OpenSSH установлен, выполнив поиск в окне настроек Windows Optional features (Start > Settings, затем найдите «Optional features»). Это относится к Windows 10+.
-
Проверьте переменную среды
%PATH%, чтобы убедиться, что отображается собственное расположение Windows OpenSSH (например,C:WINDOWSSystem32 OpenSSH).Примечание. Если вы уже используете Git для Windows, убедитесь, что собственное расположение Windows OpenSSH указано перед расположением Git для Windows SSH в вашем
%PATH%переменная. Это гарантирует, что Windows использует собственный агент Windows OpenSSH вместо агента Git для Windows SSH. -
В терминале PowerShell запустите процесс
ssh-agentи убедитесь, что он запускается автоматически:# Set the ssh-agent service to start automatically and manually start it now
Get-Service ssh-agent | Set-Service -StartupType Automatic
# Run the ssh-agent process to start the ssh-agent service
ssh-agent
-
Импортируйте свой ключ в ssh-agent, запустив
ssh-addв командной строке и следуя инструкциям. По умолчанию агент добавляет ключ%USERPROFILE%.sshid_rsaи запрашивает пароль.# Import the key
ssh-add
Чтобы использовать другой ключ, вы можете указать его в качестве аргумента:
# Set the ssh-agent service to start automatically and manually start it now
ssh-add
Если вы не можете вспомнить название своего ключа, вы можете попросить агента перечислить их:
ssh-add -l -
Если вы установили Git для Windows, сбросьте переменную среды
%GIT-SSH%, чтобы убедиться, что Git всегда использует собственную версию ssh-agent для Windows OpenSSH:[Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)
Добавление ключей SSH в агент SSH для macOS
Используйте следующую команду, чтобы добавить ключи SSH в ssh-agent, работающий на вашей macOS. система:
ssh-add -K ~/.ssh/
После выполнения этой команды терминал запрашивает пароль для разблокировки ключа SSH, а затем добавляет его в цепочку ключей macOS. Однако после перезагрузки системы все ключи, хранящиеся в ssh-agent, сбрасываются.
Чтобы предотвратить повторный ввод пароля после перезагрузки системы, откройте файл ~/.ssh/config (или создайте его, если вы его не найдете) и добавьте следующее:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/
Перезагрузите компьютер, чтобы применить эти изменения.
Can’t update Git version
Если вы пытаетесь обновить свою зависимость Git, диспетчер пакетов получает зависимости Git непосредственно из репозитория Git, а не из реестр пакетов. Зависимости Git используют ссылку URL-адреса Git вместо версии, и нет никаких гарантий относительно качества, стабильности, достоверности пакета или даже того, соответствует ли версия, указанная в его файле package.json. Правила семантического управления версиями в отношении официально опубликованных выпусков этого пакета. Дополнительная информация
Посмотрите в Словарь более новую версию из репозитория, но она не работает, вероятно, это связано с тем, что ваша зависимость от Git заблокирована. Если вы хотите обновить свою зависимость Git до более новой версии из репозитория, используйте кнопку Добавить пакет из URL-адреса git и введите URL-адрес Git. Дополнительные сведения см. в разделе Заблокированные зависимости Git.
‘Failed to parse Http response’ in My Assets context
Если вы видите следующее сообщение в окне консоли при попытке загрузить пакет Asset Store, возможно, возникла проблема с кешем Asset Store:
[PackageManager] Error Failed to parse response. UnityEditor.AsyncHTTPClientone(State, Int32)
Чтобы решить эту проблему, удалите все загруженные ресурсы из каталога пакетов Asset Store, а затем повторите попытку загрузки ресурсов.
Предупреждение. Если ваш проект содержит много данных об объектах, повторная загрузка может занять много времени и трафика.
Missing ‘My Registries’ in the Package Manager window
Не все поставщики реестра совместимы с диспетчером пакетов Unity. Если добавленный вами сервер реестра пакетов не реализует конечные точки /-/v1/search или /-/all, ваш реестр с заданной областью не совместим с диспетчером пакетов Unity и не отображается в контексте My Registries в окне диспетчера пакетов.
Missing MonoBehaviour errors
Во время сборки, если возникает много ошибок, связанных с отсутствующим поведением, UnityLinker может по ошибке удалить компонент, который, по его мнению, не указан. Часто это происходит из-за слишком агрессивного уровня зачистки. Например, если у вас есть префабтип актива, который позволяет хранить GameObject вместе с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов на сцене. Подробнее
См. в Словарь в AssetBundle, который ссылается на компонент SpriteShape в пакете 2D SpriteShape. , объект может отсутствовать и вызывать предупреждения компилятора.
Чтобы исправить это, вы можете либо понизить уровень разделения для UnityLinker, либо объявить сборки пакета в файле link.xml, чтобы предотвратить их удаление:
<linker>
<assembly fullname="Unity.2D.SpriteShape.Runtime" preserve="all"/>
<assembly fullname="Unity.2D.Common.Runtime" preserve="all"/>
</linker>
Дополнительную информацию об уровнях удаления и UnityLinker см. в разделе Управляемое удаление кода.
Loading error for hostfxr.dll on Windows
Если консоль сообщает, что библиотека hostfxr.dll найдена, но Unity не удалось загрузить ее из C: hostfxr.dll, вы можете исправить эту ошибку в Windows 7 или Windows Server 2008 R2, установив обе KB2999226 и KB2533623 исправления.
В этом разделе содержится информация по следующим вопросам:
| Тип ошибки | Сообщение об ошибке: |
|---|---|
| General startup issues | — Error messages in the Package Manager window — Package Manager missing or window doesn’t open — Problems after upgrading Unity to new version — Resetting your project’s package configuration |
| Package installation issues | — Package installation fails — Packages not recognized |
| Problems installing git dependencies | — No ‘git’ executable was found — git-lfs: command not found — Repository not found — Could not read Username: terminal prompts disabled — Can’t update Git version |
|
Asset StoreA growing library of free and commercial assets created by Unity and members of the community. Offers a wide variety of assets, from textures, models and animations to whole project examples, tutorials and Editor extensions. More info See in Словарь packages (My Assets) |
— ‘Failed to parse Http response’ in My Assets context |
| Scoped registries | — Missing ‘My Registries’ in the Package Manager window |
| Issues when building packages | — Missing MonoBehaviour errors — Loading error for hostfxr.dll on Windows |
Вы также можете запустить инструмент Diagnostics диспетчера пакетов Unity, если у вас возникли проблемы, которые могут быть связаны с сетью. Дополнительную информацию см. в разделе Проблемы с сетью.
Error messages in the Package Manager window
Диспетчер пакетов отображает индикаторы ошибок в окне диспетчера пакетов при возникновении проблем:
-
Общесистемные проблемы
Сообщения об ошибках, которые появляются в строке состояния, указывают на то, что диспетчер пакетов обнаружил проблему, не связанную с конкретным пакетом. Например, если диспетчер пакетов не может получить доступ к серверу реестра пакетов, он отображает это сообщение в строке состояния:

Сообщение об ошибке сети Если ваша сеть не может подключиться к серверу реестра пакетов, возможно, это связано с проблемой подключения к сети. Когда вы или ваш системный администратор исправляете сетевую ошибку, строка состояния очищается.
Если ваше сетевое соединение работает, но вы не вошли в свою учетную запись Unity, диспетчер пакетов не не отображать пакеты Asset Store. При попытке использовать контекст My Assets диспетчер пакетов отображает ошибку в строке состояния:

Вышел из учетной записи Unity Нажмите кнопку Sign in в списке, чтобы войти в свою учетную запись Unity через Центр Unity.
-
Проблемы, связанные с пакетом
Если при загрузке или установке определенного пакета возникает проблема (например, при определении версий пакета для загрузки), значок ошибки (
) отображается в списке пакетов рядом со скомпрометированным пакетом (A). Чтобы выяснить, в чем проблема, откройте представление сведений о скомпрометированном пакете и просмотрите подробное сообщение об ошибке (B):
Сообщение об ошибке зависимости
Package Manager missing or window doesn’t open
Окно диспетчера пакетов может быть перемещено за пределы экрана или скрыто другим окном. Когда это происходит, похоже, что окно диспетчера пакетов не открылось. В этом случае вы можете попытаться сбросить макет окна (Window > Layouts > Default) и снова открыть окно диспетчера пакетов.
Если окно диспетчера пакетов по-прежнему не отображается, проверьте окно консоли Unityокно редактора Unity, в котором отображаются ошибки, предупреждения и другие сообщения, созданные Unity или вашими собственными сценариями. Подробнее
См. в Словарь:
Failed to resolve packages: The file [/Packages/manifest.json] is not valid JSON:
Unexpected token '}' at 44:1
}
Это сообщение об ошибке указывает на то, что ваш файл manifest.json имеет неверный формат. Он также сообщает вам номер строки, в которой диспетчеру пакетов не удалось проанализировать файл, чтобы вы могли исправить ошибку JSON. Существует ряд онлайн-валидаторов, которые вы можете использовать, чтобы попытаться решить проблему. Как только вы сохраните исправленный файл, Unity перезагрузит окно диспетчера пакетов.
Если вы выполнили обновление с ранней версии редактора Unity, могут возникнуть другие проблемы с вашим манифестом пакетаКаждый пакет имеет манифест, который предоставляет информацию о пакете диспетчеру пакетов. Манифест содержит такую информацию, как имя пакета, его версия, описание для пользователей, зависимости от других пакетов (если есть) и другие подробности. Дополнительная информация
См. в файле Словарь:
-
В версии 2019.3 ваш файл
manifest.jsonне должен содержать никаких ссылок на пакет com.unity.package-manager-ui. Вы можете либо сбросить конфигурацию пакета вашего проекта, либо удалить следующую строку из списка зависимостей манифеста:"com.unity.package-manager-ui": "2.1.1",
-
Проверьте, есть ли в вашем манифесте проектакаждый проект Unity манифест проекта , который действует как точка входа для диспетчера пакетов. Этот файл должен находиться в каталоге
/Packages. Диспетчер пакетов использует его для настройки многих вещей, включая список зависимостей для этого проекта, а также любой репозиторий пакетов для запроса пакетов. Дополнительная информация
См. Словарь функция «exclude» в качестве пакетной версии. Это устаревшее значение для зависимостей
См. в свойстве Словарь. Если вы найдете такие строки, удалите всю строку. Диспетчер пакетов устанавливает только те пакеты, которые явно включены в ваш проект как зависимость, поэтому после удаления этой записи диспетчер пакетов игнорирует пакет и не устанавливает его.
Если диспетчер пакетов по-прежнему не загружается, следуйте инструкциям в разделах Нераспознанные пакеты и Сброс конфигурации пакета вашего проекта.
Problems after upgrading Unity to new version
При обновлении проекта до более новой версии Unity диспетчер пакетов автоматически обновляет несовместимые пакеты до более новых совместимых версий. Однако, если ваш пакет не компилируется, диспетчер пакетов отображает сообщения об ошибках в консоли.
Чтобы исправить эти сообщения, прочтите сообщения об ошибках и устраните все возможные проблемы. Например, в пакете может отсутствовать зависимость от другого пакета или версии. В этом случае вы можете попробовать установить пакет самостоятельно.
Вы также можете попробовать следующую последовательность решений, пока не найдете то, что работает:
- Создайте резервную копию и удалите папку
Packagesв своем проекте. - Создайте резервную копию, а затем удалите исходные коды пакетов в папке
Packagesвашего проекта, оставив только файлmanifest.json. Затем попробуйте перезагрузить проект. - Создайте новый пустой проект. Если окно диспетчера пакетов загружается успешно, замените папку
Library/PackageCache/com.unity.package-manager-ui@в неудачном проекте на ту же папку из только что созданный проект. - В крайнем случае вы можете сбросить свой проект до пакета по умолчаниюUnity автоматически предварительно устанавливает выбранное количество пакетов по умолчанию (например, Analytics Library, Unity Timeline и т. д.) при создании нового проекта. Он отличается от встроенного пакета тем, что его не нужно устанавливать, и отличается от встроенного пакета тем, что расширяет возможности Unity, а не позволяет включать или отключить их.
Просмотрите в конфигурации Словарь и добавляйте обратно пакеты по одному, пока не заработает.
Resetting your project’s package configuration
Если в проекте слишком много проблем с пакетами, вы можете сбросить проект до конфигурации пакетов по умолчанию для редакторской версии Unity. Эта операция сбрасывает все пакеты в вашем проекте. Это может не устранить источник проблемы, но может помочь вам понять, в чем проблема.
Примечание. Вы не можете отменить сброс конфигурации пакета, поэтому сначала создайте резервную копию файла manifest.json или убедитесь, что ваш проект находится под управлением исходного кода. Вы также можете принять дополнительные меры предосторожности, клонировать свой проект и протестировать операцию на клоне, прежде чем продолжить.
Чтобы вернуться к конфигурации пакета по умолчанию, выберите Reset Packages to defaults в меню Help.

Resetting a clone of your project
Вы также можете протестировать возврат к пакетам по умолчанию, прежде чем вносить окончательные изменения:
-
Клонируйте свой проект, скопировав папку проекта и переименовав ее, чтобы ее было легко найти (например, если ваш проект называется
MyProject, вы можно использовать что-то вродеclone_MyProject). -
Загрузите новый клонированный проект.
-
В меню «Help» выберите Reset Packages to defaults.
В зависимости от размера вашего проекта это может занять несколько минут.
-
Убедитесь, что он успешно сбросил пакеты. Если это так, вы можете безопасно выполнить операцию в исходном проекте.
Package installation fails
Если вы пытаетесь установить новый пакет из реестра, и он не работает, это может быть связано с проблемами с правами доступа.
У вас должны быть полные права доступа к папке кеша:
- Windows:
C:UsersyournameAppDataLocalUnitycache - MacOS:
~/Users/Library/Unity/cache
Это может быть проблема с сетью. Проверьте настройки брандмауэра и прокси-сервера.
Иногда учреждения, такие как школы, государственные учреждения или защищенные сетью рабочие места, настраивают прокси-серверы для управления трафиком между сетью и Интернетом и используют собственные сертификаты сервера, которые не распознаются Unity или диспетчером пакетов. Поговорите со своим сетевым администратором.
Packages not recognized
Если вы видите много ошибок компиляции, это может означать, что Unity не распознает пакеты в вашем существующем проекте. В этом случае вам может не хватать компонента .NET.
Для Windows:
- Загрузите и установите Visual Studio 2017 версии 15.9.0 или выше с рабочей нагрузкой .NET Core cross-platform development workload, выбранной в разделе Other Toolsets.
- Загрузите и установите компонент .NET SDK v2.2.101.
Для MacOS:
-
Загрузите и установите компонент .NET SDK v2.2.101.
-
Установите все рекомендуемые обновления в Visual Studio
-
Используйте homebrew для приготовления и установки mono:
brew update
brew install mono # optional
brew upgrade mono
-
При необходимости удалите папку
Library/obj/tempв своем проекте и перезапустите Unity. -
Если вы по-прежнему испытываете трудности, попробуйте также перезагрузить компьютер.
No ‘git’ executable was found
Если вы попытаетесь установить пакет с URL-адреса git, появится сообщение, похожее на это:
Cannot perform upm operation: Unable to add package
[https://github.example.com/myuser/myrepository.git]:
No 'git' executable was found. Please install Git on your system and restart Unity [NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
git-lfs: command not found
Если вы пытаетесь загрузить пакет, использующий Git LFS (большое файловое хранилище), вы можете увидеть следующее сообщение об ошибке:
Error when executing git command. git-lfs filter-process: command not found.
Это указывает на то, что Git LFS, вероятно, не установлен на вашем компьютере. Чтобы убедиться, вы можете проверить это в командной строке:
git lfs --version
Если вы видите что-то подобное, Git LFS установлен:
git-lfs/2.8.0 (GitHub; darwin amd64; go 1.12.7)
В противном случае вы можете установить его, выполнив Bitbucket GitHub.
Repository not found
Если указать несуществующее расположение, в Консоли Unity появится сообщение, похожее на это:
Cannot perform upm operation: Unable to add package [https://mycompany.github.com/gitproject/com.mycompany.mypackage.git]:
Error when executing git command. fatal: repository 'https://mycompany.github.com/gitproject/com.mycompany.mypackage.git/' not found
[NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)
Проверьте правописание. Чтобы убедиться, что вы используете правильный URL-адрес, перейдите на страницу репозитория и скопируйте URL-адрес из кнопки «Клонировать»:

Нажмите кнопку справа от URL-адреса на GitHub (A) или GitLab (B), чтобы скопировать URL-адрес в буфер обмена.
Если расположение репозитория верное, может быть другая проблема с URL-адресом:
- Если вы настраиваете таргетинг на конкретную версию, убедитесь, что ваша версия стоит последней. Например:
https://github.example.com/myuser/myrepository1.git#revision - Если вы нацелены на ревизию, а пакет не находится в корне, убедитесь, что параметр запроса
pathпредшествует привязке ревизии. Например:
https://github.example.com/myuser/myrepository.git?path=/example/folder#v1.2.3
Could not read Username: terminal prompts disabled
Если вы пытаетесь установить пакет из частного репозитория, для которого требуется аутентификация, в консоли Unity появится сообщение, похожее на это:
Cannot perform upm operation: Unable to add package [https://mycompany.github.com/gitproject/com.mycompany.mypackage.git]:
Error when executing git command. fatal: could not read Username for 'https://mycompany.github.com': terminal prompts disabled
[NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)
Это сообщение, вероятно, связано с тем, что диспетчер пакетов не предоставляет интерактивный терминал или диалоговое окно, где вы можете ввести свое имя пользователя и пароль для HTTP или парольную фразу для разблокировки ключа SSH:
-
При использовании HTTP(S) каждый раз, когда вы входите в BitBucket, GitHub или GitLab, вам необходимо вводить имя пользователя и пароль в терминале или диалоговом окне. Однако диспетчер пакетов не предоставляет интерактивный терминал или диалоговое окно, где вы можете ввести свое имя пользователя и пароль для HTTP(S).
Чтобы избежать этого, используйте один из обходных путей, предложенных в разделе Решения для HTTPS.
-
SSH использует пару открытых и закрытых ключей SSH. Вы можете добавить свой открытый SSH-ключ в Bitbucket, GitHub или GitLab, а затем получить доступ к репозиториям без ввода имени пользователя и пароля.
Однако, если вы установили парольную фразу для обеспечения безопасности своего ключа SSH, вам все равно придется ввести эту парольную фразу в терминал или диалоговое окно, чтобы авторизовать свой ключ. В этом случае вы можете использовать агент SSH, который может разблокировать ваш ключ SSH для аутентификации в диспетчере пакетов от вашего имени.
Решения для HTTPS
Диспетчер пакетов не предоставляет интерактивный терминал или диалоговое окно, где вы можете ввести свое имя пользователя и пароль HTTP(S). Чтобы обойти это, используйте один из следующих обходных путей:
- Используйте диспетчер учетных данных (Git Credential-Manager для Windows или OSXKeyChain). Менеджеры учетных данных обрабатывают отправку пароля без использования терминала или командной строки.
- Используйте git-credential-Storage из терминала или командная строка. Затем запустите Hub с того же терминала, чтобы у Unity был доступ к кэшированным или сохраненным учетным данным.
- Вместо этого используйте SSH для аутентификации. Если вы настроили свой SSH-ключ без парольной фразы, диспетчеру пакетов не нужно его расшифровывать для аутентификации на сервере Git. Если вы решите использовать парольную фразу для дополнительной безопасности, вы все равно можете обойти проблему аутентификации, используя ssh-agent в любой из macOS или Windows.
Решения для SSH
Если вы используете протокол SSH для установки пакета по URL-адресу Git, вы можете получить ошибку аутентификации от Git. Обычно это происходит, когда вы настраиваете закрытый ключ SSH на локальном компьютере, который защищен парольной фразой.
Решение этой проблемы заключается в настройке агента SSH, который может разблокировать ваш ключ SSH для аутентификации в диспетчере пакетов от вашего имени. Следуйте инструкциям в разделе, соответствующем вашей операционной системе:
- Настройка OpenSSH для Windows
- Добавление ключей SSH в агент SSH для macOS
Настройка OpenSSH для Windows
Собственная версия OpenSSH для Windows ssh-agent работает лучше, чем версия, доступная по умолчанию с Git для Windows. Эта процедура объясняет, как настроить клиент OpenSSH и добавить свой ключ в его ssh-агент. Если вы используете Git для Windows, вы также можете отдать приоритет собственному Windows OpenSSH над агентом Git для Windows SSH:
-
Убедитесь, что клиент OpenSSH установлен, выполнив поиск в окне настроек Windows Optional features (Start > Settings, затем найдите «Optional features»). Это относится к Windows 10+.
-
Проверьте переменную среды
%PATH%, чтобы убедиться, что отображается собственное расположение Windows OpenSSH (например,C:WINDOWSSystem32 OpenSSH).Примечание. Если вы уже используете Git для Windows, убедитесь, что собственное расположение Windows OpenSSH указано перед расположением Git для Windows SSH в вашем
%PATH%переменная. Это гарантирует, что Windows использует собственный агент Windows OpenSSH вместо агента Git для Windows SSH. -
В терминале PowerShell запустите процесс
ssh-agentи убедитесь, что он запускается автоматически:# Set the ssh-agent service to start automatically and manually start it now
Get-Service ssh-agent | Set-Service -StartupType Automatic
# Run the ssh-agent process to start the ssh-agent service
ssh-agent
-
Импортируйте свой ключ в ssh-agent, запустив
ssh-addв командной строке и следуя инструкциям. По умолчанию агент добавляет ключ%USERPROFILE%.sshid_rsaи запрашивает пароль.# Import the key
ssh-add
Чтобы использовать другой ключ, вы можете указать его в качестве аргумента:
# Set the ssh-agent service to start automatically and manually start it now
ssh-add
Если вы не можете вспомнить название своего ключа, вы можете попросить агента перечислить их:
ssh-add -l -
Если вы установили Git для Windows, сбросьте переменную среды
%GIT-SSH%, чтобы убедиться, что Git всегда использует собственную версию ssh-agent для Windows OpenSSH:[Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)
Добавление ключей SSH в агент SSH для macOS
Используйте следующую команду, чтобы добавить ключи SSH в ssh-agent, работающий на вашей macOS. система:
ssh-add -K ~/.ssh/
После выполнения этой команды терминал запрашивает пароль для разблокировки ключа SSH, а затем добавляет его в цепочку ключей macOS. Однако после перезагрузки системы все ключи, хранящиеся в ssh-agent, сбрасываются.
Чтобы предотвратить повторный ввод пароля после перезагрузки системы, откройте файл ~/.ssh/config (или создайте его, если вы его не найдете) и добавьте следующее:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/
Перезагрузите компьютер, чтобы применить эти изменения.
Can’t update Git version
Если вы пытаетесь обновить свою зависимость Git, диспетчер пакетов получает зависимости Git непосредственно из репозитория Git, а не из реестр пакетов. Зависимости Git используют ссылку URL-адреса Git вместо версии, и нет никаких гарантий относительно качества, стабильности, достоверности пакета или даже того, соответствует ли версия, указанная в его файле package.json. Правила семантического управления версиями в отношении официально опубликованных выпусков этого пакета. Дополнительная информация
Посмотрите в Словарь более новую версию из репозитория, но она не работает, вероятно, это связано с тем, что ваша зависимость от Git заблокирована. Если вы хотите обновить свою зависимость Git до более новой версии из репозитория, используйте кнопку Добавить пакет из URL-адреса git и введите URL-адрес Git. Дополнительные сведения см. в разделе Заблокированные зависимости Git.
‘Failed to parse Http response’ in My Assets context
Если вы видите следующее сообщение в окне консоли при попытке загрузить пакет Asset Store, возможно, возникла проблема с кешем Asset Store:
[PackageManager] Error Failed to parse response. UnityEditor.AsyncHTTPClientone(State, Int32)
Чтобы решить эту проблему, удалите все загруженные ресурсы из каталога пакетов Asset Store, а затем повторите попытку загрузки ресурсов.
Предупреждение. Если ваш проект содержит много данных об объектах, повторная загрузка может занять много времени и трафика.
Missing ‘My Registries’ in the Package Manager window
Не все поставщики реестра совместимы с диспетчером пакетов Unity. Если добавленный вами сервер реестра пакетов не реализует конечные точки /-/v1/search или /-/all, ваш реестр с заданной областью не совместим с диспетчером пакетов Unity и не отображается в контексте My Registries в окне диспетчера пакетов.
Missing MonoBehaviour errors
Во время сборки, если возникает много ошибок, связанных с отсутствующим поведением, UnityLinker может по ошибке удалить компонент, который, по его мнению, не указан. Часто это происходит из-за слишком агрессивного уровня зачистки. Например, если у вас есть префабтип актива, который позволяет хранить GameObject вместе с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов на сцене. Подробнее
См. в Словарь в AssetBundle, который ссылается на компонент SpriteShape в пакете 2D SpriteShape. , объект может отсутствовать и вызывать предупреждения компилятора.
Чтобы исправить это, вы можете либо понизить уровень разделения для UnityLinker, либо объявить сборки пакета в файле link.xml, чтобы предотвратить их удаление:
<linker>
<assembly fullname="Unity.2D.SpriteShape.Runtime" preserve="all"/>
<assembly fullname="Unity.2D.Common.Runtime" preserve="all"/>
</linker>
Дополнительную информацию об уровнях удаления и UnityLinker см. в разделе Управляемое удаление кода.
Loading error for hostfxr.dll on Windows
Если консоль сообщает, что библиотека hostfxr.dll найдена, но Unity не удалось загрузить ее из C:\ hostfxr.dll, вы можете исправить эту ошибку в Windows 7 или Windows Server 2008 R2, установив обе KB2999226 и KB2533623 исправления.
UnityPlayer.dll — это файл библиотеки динамической компоновки, разработанный компанией Payload Studios для такого движка воспроизведения как Unity Technologies ApS.
Файл UnityPlayer.dll предназначен для создания 3D игр или анимированных персонажей, и также для правильной работы игр созданных на движке Unity. Если данный файл отсутствует или не найден в Windows 10 или Windows 7, то выскочит ошибка следующего вида:
- Система не обнаружила unityplayer.dll
- Файл unityplayer.dll не найден
- Файл unityplayer.dll отсутствует
- Не удается найти [ПУТЬ] unityplayer.dll
- Не удается запустить [ПРИЛОЖЕНИЕ]. Отсутствует необходимый компонент: unityplayer.dll. Пожалуйста, установите [ПРИЛОЖЕНИЕ] еще раз.

Вы должны понимать, что файл UnityPlayer.dll имеется во всех движках как Unity и лаунчерах как Steam или Epic. Многие сайты заставляют вас скачивать со сторонних источников отдельно dll файл и закинуть его к себе на компьютер по неправильному даже пути (в системные папки), но где гарантия, что там не вредоносный файл? Если вам нужен отдельно файл, то не легче его взять с официальной какой-либо игры? У меня имеется данный файл в игре AmongUs игрового лаунчера Epic Game.

Исправить ошибку отсутствующего файла UnityPlayer.dll
Разберем, где можно взять файл UnityPlayer.dll и как исправить ошибку его отсутствия в Windopws 10 или 7.
1. Блокировка файла антивирусом
Отключите на время антивирусный продукт и установите заново игру или программу.

2. Ошибка в играх
Если вы используете такие игровые лаунчеры как Steam, Epic или Uplay, то вам стоит переустановить игру или сделать целостную проверку файлов через сам лаунчер.
Если у вас есть подобные игры или программы, а ошибка к примеру в другой игре, то вы можете скопировать файл.

3. Регистрация UnityPlayer.dll в системе
Для Windows 10 и Windows 7 DLL библиотеки нужно регистрировать, если файл отсутствует в программе, которая устанавливается части своих библиотек в системные папки как system32 и syswow64. По этому, запустите командную строку от имени администратора и введите следующие ниже команды.
regsvr32 /u unityplayer.dllregsvr32 /i unityplayer.dll

4. Удаление Citrix Workspace
Многие пользователи на форуме Microsoft решили проблему удалением программы Citrix Workspace.
Смотрите еще:
- Отсутствует d3dx9_42.dll в Windows 10/7 — Решение
- Ошибка api-ms-win-downlevel-kernel32-l2-l-0.dll Epic Games в Windows 7
- Исправить ошибку nvwgf2umx.dll в Windows 10
- Скачать msvbvm50.dll для Windows 10/7 и исправить ошибку
- Как исправить ошибку KernelBase.dll в Windows 10
[ Telegram | Поддержать ]