Устранение неполадок и известные проблемы (набор средств Visual Studio для Unity)
В этом разделе рассмотрены решения по устранению проблем, типичных для набора средств Visual Studio для Unity, приведено описание известных проблем и показано, как улучшить функционирование набора средств Visual Studio для Unity с помощью отчетов об ошибках.
Устранение неполадок соединения между Unity и Visual Studio
Подтверждение Editor Attaching включено или Code Optimization On Startup установлено значение Debug
В меню Unity выберите Edit / Preferences .
В зависимости от используемой версии Unity:
- Подтвердите, что Code Optimization On Startup задано как Debug .
- Или выберите вкладку External Tools . Убедитесь, что Editor Attaching включено поле проверка box.
Не удается подключить
- Попробуйте временно отключить антивирусную программу или создать правила исключения для VS и Unity.
- Попробуйте временно отключить брандмауэр или создать правила, разрешающие сетевое взаимодействие между VS и Unity по протоколам TCP/UDP.
- Некоторые программы, например Team Viewer могут препятствовать обнаружению процессов. Попробуйте временно остановить все лишнее программное обеспечение, чтобы выяснить, повлияет ли это на что-либо.
- Не переименовывайте основной исполняемый файл Unity, так как VSTU отслеживают только процессы «Unity.exe».
Сбои Visual Studio
Эта проблема может быть вызвана повреждением кэша MEF в Visual Studio.
Попробуйте удалить следующую папку, чтобы сбросить кэш MEF (перед этим закройте Visual Studio):
%localappdata%\Microsoft\VisualStudio\\ComponentModelCache
Это должно исправить проблему. Если проблема не устранена, запустите командную строку разработчика для Visual Studio от имени администратора и выполните следующую команду:
devenv /setup
Visual Studio не отвечает
Некоторые подключаемые модули Unity, такие как Parse, FMOD, UMP (Universal Media Player), ZFBrowser или Embedded Browser, используют собственные потоки. Эта проблема возникает, когда подключаемый модуль подключает собственный поток к среде выполнения, что блокирует вызовы ОС. Это означает, что Unity не может прервать этот поток для отладчика (или перезагрузки домена) и перестает отвечать на запросы.
Для FMOD существует обходной путь. Вы можете передать флаг инициализации FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE , чтобы отключить асинхронную обработку и выполнять всю обработку в основном потоке.
Если вы разрабатываете собственный подключаемый модуль, рекомендуется использовать асинхронные вызовы процедур (APC) и SleepEx особенно WaitForMultipleObjectsEx WaitForSingleObjectEx , SignalObjectAndWait MsgWaitForMultipleObjectsEx или функции, чтобы правильно сотрудничать с Unity и Mono, когда отладчик должен приостановить потоки.
Несовместимый проект в Visual Studio
Важно знать, что Visual Studio сохраняет состояние «Несовместимый» в параметрах проекта и не пытается перезагрузить проект, пока не будет явно использоваться Reload Project . Таким образом, после каждого шага устранения неполадок убедитесь, что вы попытаетесь повторно открыть решение и попытаться щелкнуть правой кнопкой мыши все несовместимые проекты и выбрать Reload Project .
- Убедитесь, что Visual Studio установлен в качестве внешнего редактора скриптов в Unity с помощью Edit / Preferences / External Tools .
- В зависимости от версии Unity:
- Убедитесь, что подключаемый модуль Visual Studio установлен в Unity. Help / About должно отображаться сообщение, например Microsoft Инструменты Visual Studio для Unity, в нижней части экрана.
- Unity 2020.x+: убедитесь, что вы используете последний пакет редактора Visual Studio в Window / Package Manager .
- Попробуйте удалить все файлы проектов и решений и папку .vs в проекте.
- Попробуйте воссоздать проекты или решение с помощью Open C# Project или Edit / Preferences / External tools / Regenerate Project files .
- Убедитесь, что вы установили рабочую нагрузку Game/Unity в Visual Studio.
- Попробуйте очистить кэш MEF, как описано здесь.
- Попробуйте повторно установить Visual Studio (с помощью рабочей нагрузки Game/Unity только для запуска).
- Попробуйте отключить сторонние расширения в случае, если они могут повлиять на расширение Unity. Tools / Extensions
Дополнительные перезагрузки или закрытие всех открытых окон в Visual Studio
Никогда не работайте с файлами проектов непосредственно из обработчика ресурсов или иного средства. Если вам действительно необходимо совершить операции с файлом проекта, мы предоставляем для этого интерфейс API. См. раздел Проблемы со ссылками на сборку.
Если происходят лишние перезагрузки или если при перезагрузке в Visual Studio закрываются все открытые окна, убедитесь в том, что установлены все необходимые целевые пакеты .NET. Дополнительные сведения см. ниже в разделе, посвященном платформам.
В случае исключений не происходит останов отладчика
При использовании предыдущей версии среды выполнения Unity (эквивалентной версии .NET 3.5), в случае необработанного исключения (вне блока try/catch) всегда происходит останов отладчика. Если исключение обрабатывается, отладчик использует окно параметров исключений для определения того, требуется ли останов.
В новой среде выполнения Unity (эквивалентной версии .NET 4.6) появился новый способ управления пользовательскими исключениями. В результате все исключения считаются «обработанными пользователем», даже если они произошли вне блока try/catch. Поэтому их необходимо явным образом задавать в окне параметров исключений, если требуется останов отладчика.
В окне Параметры исключений (отладка > исключений Windows > Параметры), разверните узел для категории исключений (например, исключения среды CLR, то есть исключения .NET) и выберите поле проверка для конкретного исключения, которое требуется поймать в этой категории (например, System.NullReferenceException). Можно также выбрать всю категорию исключений.
В ОС Windows система Visual Studio предлагает скачать целевую платформу Unity
При использовании устаревшей среды выполнения Unity (эквивалент .NET 3.5) Инструменты Visual Studio для Unity требуется платформа .NET Framework 3.5, которая по умолчанию не установлена в Windows 8 или 10. Чтобы устранить эту проблему, следуйте инструкциям по скачиванию и установке .NET Framework 3.5.
При использовании новой среды выполнения Unity пакеты для .NET, предназначенные для пакетов версии 4.6 или 4.7.1, также требуются в зависимости от версии Unity. Установщик Visual Studio можно использовать для быстрой установки (изменить установку, отдельные компоненты, категорию .NET, выбрать все пакеты назначения 4.x).
Проблемы со ссылкой на сборку или свойством проекта
Если ваш проект довольно сложен с точки зрения ссылок или требуется лучше контролировать этот этап создания, вы можете использовать наш API для работы с созданным содержимым проекта или решения. Вы также можете использовать файлы ответов в своем проекте Unity и обрабатывать их.
В последних версиях Visual Studio и Unity лучший подход, как представляется, использует пользовательский Directory.Build.props файл вместе с созданными проектами. Затем вы сможете внести свой вклад в структуру проекта, не вмешиваясь в процесс создания.
Точки останова с предупреждением
Если Visual Studio не удается найти исходное расположение для определенной точки останова, рядом с ней отображается предупреждение. Убедитесь, что используемый вами скрипт правильно загружен и используется в текущей сцене Unity.
Точки останова не срабатывают
Убедитесь, что используемый вами скрипт правильно загружен и используется в текущей сцене Unity. Закройте Visual Studio и Unity, а затем удалите все созданные файлы (*.csproj, *.sln), .vs папку и всю папку библиотеки. Дополнительные сведения об отладке C# можно найти на веб-сайте Unity.
Не удается выполнить отладку проигрывателей Android
Мы используем для обнаружения проигрывателей многоадресную рассылку (это стандартный механизм, применяемый в Unity), но затем применяется простое соединение TCP для подключения отладчика. Этап обнаружения — основная проблема для устройств Android.
Связь через Wi-Fi универсальна, однако она слишком медленная по сравнению с USB из-за задержки. Мы наблюдали отсутствие должной поддержки многоадресной рассылки у некоторых маршрутизаторов или устройств (этим известна серия Nexus).
Связь по USB обладает отличной скоростью для отладки. Инструменты Visual Studio для Unity теперь могут обнаруживать устройства USB и согласовывать с сервером ADB правильную переадресацию портов для отладки.
Проблемы с цветом intelliSense или кодом
Попробуйте обновить Visual Studio до последней версии. Выполните те же действия по устранению неполадок, что и для несовместимых проектов.
Известные проблемы
Применительно к набору средств Visual Studio для Unity существуют известные проблемы, которые возникают вследствие взаимодействия отладчика со старой версией компилятора C# в Unity. Мы работаем над устранением этих проблем, но в то же время могут возникать другие проблемы.
- При отладке Unity иногда аварийно завершает работу.
- При отладке Unity иногда зависает.
- Пошаговая отладка с заходом и выходом из методов иногда ведет себя некорректно, особенно в итераторах или внутри инструкций switch.
Отчеты об ошибках
Помогите нам улучшить качество набора средств Visual Studio для Unity: отправляйте нам отчеты об ошибках при аварийном выходе, зависании или в случае других ошибок. Эти сведения помогают нам определять причину и устранять проблемы в наборе средств Visual Studio для Unity. Спасибо!
Как сообщить об ошибке в случае зависания Visual Studio
Существуют отчеты о том, что иногда Visual Studio зависает при отладке с помощью набора средств Visual Studio для Unity, но чтобы разобраться в проблеме, нам требуется больше данных. Вы можете помочь нам разобраться с проблемой, если выполните следующие действия.
Создание отчета о зависании Visual Studio во время отладки с помощью набора средств Visual Studio для Unity
- Откройте новый экземпляр Visual Studio.
- Откройте диалоговое окно «Присоединение к процессу». В новом экземпляре Visual Studio в главном меню выберите Отладка, Присоединение к процессу.
- Присоедините отладчик к замороженному экземпляру Visual Studio. В диалоговом окне Присоединение к процессу выберите замороженный экземпляр Visual Studio в таблице Доступные процессы , а затем нажмите кнопку Присоединить .
- Приостановите отладчик. В новом экземпляре Visual Studio в главном меню выберите Отладка, Прервать все или просто нажмите CTRL+ALT+BREAK.
- Создайте дамп потока. В окне командной строки введите следующую команду и нажмите клавишу ВВОД:
Debug.ListCallStack /AllThreads /ShowExternalCode
-
Откройте терминал и получите идентификатор процесса Visual Studio для Mac:
ps aux | grep "[V]isual Studio.app"
lldb
process attach --pid THE_PID_OF_THE_VSFM_PROCESS
bt all
Наконец, отправьте дамп потока по адресу vstusp@microsoft.com, а также опишите, что вы делали, когда среда Visual Studio зависла.
См. также
Не видит данные скрипта, который наследуется от другого (scriptableobject) C# UNITY
Делаю инвентарь. Есть основной скрипт Item, где указаны основные общие параметры предметов. От него наследуется скрипт Equipment, в котором указаны параметры, присущие только отдельным предметам (чтобы удобнее было создавать различные типы) и реализуется он через ScriptableObject. После создания предмета я пытаюсь обратиться к параметру (который есть только в скрипте Equipment) через Item — но мне пишет, что в Item нет таких переменных! Т.е. получить я могу только те переменные, которые хранятся именно в Item, а все, что в Equipment я не вижу, хотя он наследуется от Item. Как же мне тогда получить нужные мне переменные?
Отслеживать
задан 10 янв 2023 в 11:18
13 1 1 серебряный знак 3 3 бронзовых знака
Намёк: лучше один раз показать, чем 10 раз рассказать.
10 янв 2023 в 11:20
По коду: наследовать equipment от item — немного не правильно. item — штука, equipment — совокупность штук. Это как отнаследовать автомобиль от колеса))
10 янв 2023 в 11:21
@АлексейШиманский да я это и сам понимаю, просто получается что я обращаясь к машине хочу получить данные колеса, а оно не дает. Вот и спрашиваю — как это сделать тогда правильно?
10 янв 2023 в 11:24
Нет, вы ничего не поняли. . а как сделать: читайте намёк
10 янв 2023 в 11:25
@АлексейШиманский так что именно я неправильно сделал то? Item — это базовый класс с основными параметрами, а Equipment — имеет все то же, что и Item + свои отдельные параметры, поэтому и наследуется от него — по-моему все логично?
Почему unity не видит скрипт

- Главная XGM
С Новым Годом! - Ресурсы
- Статьи
- Вопросы
- Как устроен XGM?
- Панель инструментов
- Правила сайта
- Пользователи
- Блоги
- Архив форума
- Уровни и константы
- Справочные статьи
- Тех. поддержка 50
- Связаться с нами
- Switch to English
-
постоянный
Unity — мультиплатформенный движок, который взыскал популярность у многих разработчиков игр. Благодаря большой…
Unity — мультиплатформенный движок, который взыскал популярность у многих разработчиков игр. Благодаря большой расширяемости и действительно большому числу поддерживаемых платформ на Unity можно создать практически любую игру.
Уровень:
Сопровождает:
Компания:
Рейтинг:
Активность:
Тематика:
Разработка игр
Создан на сайте:
Похожие проекты

Программирование



Как начать работать с unity?

Unity

- Использование unity бесплатно? При каких условиях?
- Функционал бесплатной версии ограничен?

Не отображаются символы «О», «А» и д. р.

Unity

Здравствуйте!
Я столкнулся с проблемой:
В один день я захожу в свой проект, а там вместо Очки — 0 отображается ☐чки — 0.
Также на ☐ заменились А, Ч, Й и д. р.
Я обновил шрифт, теперь вылезает ошибка:
__The character with Unicode value \u0420 was not found in the [LiberationSans SDF] font asset or any…
Условие на подключение PUN 2

Unity

Здравствуйте!
Мне нужно условие, которое проверяет, подключён ли игрок к серверу. Именно подключён, мне не нужно условие на присоединение к серверу.
Пожалуйста, помогите решить проблему!
Json и тест сцены

Unity

Продолжаю разбираться в этой теме
Такая проблема:
Нажимаю Play
и понимаю, что мой Json файл растет каждый раз, когда сериализую…
Порядок выполнения кода

Unity

Что влияет на порядок выполнения кода в Unity? В каком порядке Unity отрабатывает код?
Создал пару скриптов с методом Awake(), и оказалось (спустя час танцев с бубном) что первым отработает скрипт, который находится…
Как лучше хранить большое количество данных (JSon?)

Unity

Всем привет. Ковыряю потихоньку свою игру в жанре менеджер, и предо мной наконец встал очевидный вопрос: «как лучше хранить данные?».
При первом рассмотрении вопроса, самое простое решение, которое я смог найти в интернете — хранить данные в JSon файле. Но насколько я…
Постоянная полоска загрузки скрипта

Unity

Такая проблема:
Открываю любой скрипт в Unity, Microsoft Visual Studio запускается и работает нормально, но постоянно висит бар загрузки, который немного бесит и мозолит глаза. В гугле какого-то конкретного решения не нашел, пробовал обновить юнити и vs. Есть идеи как исправить? Насколько могу судить, проблемы…
unity nullreferenceexception

Unity

Вот решил оживить раздел Unity тупыми вопросами.
Выскакивает ошибка nullreferenceexceptionКак обойти ее, используя различного рода велосипеды, я понял, но хотелось бы узнать природу и причину.

Переписать небольшую функцию на C#

Unity

Добрый день.
Очень прошу помощи.
В общем создаю проект WebGl. Все прекрасно работает в самой unity, но когда делаю билд под WebGL, то одна функция не отрабатывает, из-за чего вся игра ложится.
Прошу помочь переписать функцию ниже, ибо я не разбираюсь в асинхронных функциях (изначально, этот фрагмент кода делал…
Посоветуйте курсы Unity C#

Unity

Посоветуйте курсы по Unity C#, опиратся на разных «гошей дударей» желания чот совсем нет.
Когда то давно лет 5-6 работал на движке программистом пару месяцев, когда был бум мобилок и брали всех, после я ушёл в 2d и 3d и развил там довольно высокие навыки, хочу собрать команду и сделать игру, но разрабатывает проект…

Быстрый старт в Unity?

Unity

Все по классике: варкрафт уже не радует, старкрафт такой сложный и непонятный, что я с меньшими усилиями могу в Unity что-то простое заставить бегать и прыгать. Собственно, с чего лучше вливаться в Unity? Многие книги уже устарели, Unity давно уже не называется Unity 3D, хочется актуалочку изучать без устаревших…

Running the UPM health check. what to do with me?

Unity

√ Making an HTTP request to the UPM Package Registry .
‼ Measurement of UPM Packet Registry API Latency .
‼ UPM Packet Download Endpoint Latency Measurement .
√ Checking Internet Connection Using UPM Package Registry .
√ Testing internet connection with Speedtest.net .
√ Determining if proxy related…
Поповоду перемещения

Unity

Только начал изучать юнити. Ни один из скриптов интернета у меня не работает.
Пишет что скрипты рабочие,но потом вылезают какие то ошибки.Просто хочу что бы персонаж хотя бы перемещался влево право!

Конвертирование модели

Unity

Есть модель выполненання в кад системе производственной линии. Захотелось сделать возможность прогулки по цеху виртуальной. Скачал юнити. Возникла проблемы при импорте модели. Изначально моель в формате cdw — конвертировал в формат step — из степа конвертирую в fbx. В просмотрщику все тела — цветные. После импорта…

Visual Studio не видит команду Imput

Unity

Привет, у меня такая проблема, пишем с братом игру 2d платформер ему на экзамен на Unity по гайдам в ютубе.
Столкнулись с такой пробемой, Visual studio не видит команду input. То есть при введении она не отображается в командах и не выделяется синим цветом.using System.Collections;
using…
Проект Google Play Console — добавить тестировщиков

Unity

Ситуация непростая. Есть аккаунт Гугл Плей разработчика, а также добавленный проект. В самом проекте присутствует авторизация Гугл Плей (Social.localUser.authenticate). То есть без авторизации в игру не запустит.
Когда я только начинал, даже не помню, как у меня получилось — но в итоге есть 2 аккаунта, с которых я…
Вырубили свет — Файл CS пустой

Unity

Ребят помогите, пожалуйста, писал когд на си шарпе Name.cs во время работы отключили свет, включаю проект, а файл не открывает. Через блокнот он пустой, но размер вроде как видит.

form.AddBinaryData Ничего не сервере не появляется

Unity

Здравствуйте. хочу сохранять аватары игроко с гугл плей. Для этого мне нужно хранить картинки на сервере. Используя, стандартные методы, form.AddBinaryData(«fileUpload», bytes, «screenShot.png», «image/png»);. Программа пишет, что картинка загружена успешно, одна на сервере никаких новых файлов.
В качестве функции…
После build под андроид иконка становится размытой

Unity

После build под андроид иконка становится размытой. Последняя версия юнити. Размывает ну прям очень сильно, мини-мэп отключен. Кто знает в чем дело?

Передвижение персонажа Unity2d

Unity
Unity не реагирует на скрипт?
У меня есть написанный код, и он верный, так как ради проверки в чем ошибка: в коде или Unity был скопирован с помощью горячих клавиш точно рабочий код. Проблема в следующем: после строчек с GetComponentInChildren он должен выводить доступ к параметрам (скорость, сила прыжка) в самом юнити во вкладке Hero? Но почему-то этого не делает.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Hero : MonoBehaviour < private int lives = 3; private float speed = 4.0f; private float jumpforce = 1.0f; public Rigidbody2D PlayerRigidbody; public Animator charAnimator; public SpriteRenderer sprite; bool OnGround; private void Awake() < PlayerRigidbody = GetComponentInChildren(); charAnimator = GetComponentInChildren(); sprite = GetComponentInChildren(); > void Start() < >void Move() < Vector3 tempvector = Vector3.right * Input.GetAxis("Horizontal"); transform.position = Vector3.MoveTowards(transform.position, transform.position + tempvector, speed * Time.deltaTime); if (tempvector.x < 0) < sprite.flipX = true; >else < sprite.flipX = false; >> void jump() < PlayerRigidbody.AddForce(transform.up * jumpforce, ForceMode2D.Impulse); >void CheckGround() < Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 2f); OnGround = colliders.Length >1; Debug.Log(colliders.Length); > private void FixedUpdate() < CheckGround(); >void Update() < if (Input.GetButton("Horizontal")) < Move(); >if (OnGround && Input.GetButton("Jump")) < jump(); >> >- Вопрос задан более двух лет назад
- 979 просмотров
5 комментариев
Средний 5 комментариев